1*1031c584SApple OSS Distributions /* $FreeBSD: src/sys/netinet6/ipsec6.h,v 1.3.2.2 2001/07/03 11:01:54 ume Exp $ */ 2*1031c584SApple OSS Distributions /* $KAME: ipsec.h,v 1.44 2001/03/23 08:08:47 itojun Exp $ */ 3*1031c584SApple OSS Distributions 4*1031c584SApple OSS Distributions /* 5*1031c584SApple OSS Distributions * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 6*1031c584SApple OSS Distributions * All rights reserved. 7*1031c584SApple OSS Distributions * 8*1031c584SApple OSS Distributions * Redistribution and use in source and binary forms, with or without 9*1031c584SApple OSS Distributions * modification, are permitted provided that the following conditions 10*1031c584SApple OSS Distributions * are met: 11*1031c584SApple OSS Distributions * 1. Redistributions of source code must retain the above copyright 12*1031c584SApple OSS Distributions * notice, this list of conditions and the following disclaimer. 13*1031c584SApple OSS Distributions * 2. Redistributions in binary form must reproduce the above copyright 14*1031c584SApple OSS Distributions * notice, this list of conditions and the following disclaimer in the 15*1031c584SApple OSS Distributions * documentation and/or other materials provided with the distribution. 16*1031c584SApple OSS Distributions * 3. Neither the name of the project nor the names of its contributors 17*1031c584SApple OSS Distributions * may be used to endorse or promote products derived from this software 18*1031c584SApple OSS Distributions * without specific prior written permission. 19*1031c584SApple OSS Distributions * 20*1031c584SApple OSS Distributions * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND 21*1031c584SApple OSS Distributions * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22*1031c584SApple OSS Distributions * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23*1031c584SApple OSS Distributions * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE 24*1031c584SApple OSS Distributions * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25*1031c584SApple OSS Distributions * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26*1031c584SApple OSS Distributions * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27*1031c584SApple OSS Distributions * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28*1031c584SApple OSS Distributions * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29*1031c584SApple OSS Distributions * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30*1031c584SApple OSS Distributions * SUCH DAMAGE. 31*1031c584SApple OSS Distributions */ 32*1031c584SApple OSS Distributions 33*1031c584SApple OSS Distributions /* 34*1031c584SApple OSS Distributions * IPsec controller part. 35*1031c584SApple OSS Distributions */ 36*1031c584SApple OSS Distributions 37*1031c584SApple OSS Distributions #ifndef _NETINET6_IPSEC6_H_ 38*1031c584SApple OSS Distributions #define _NETINET6_IPSEC6_H_ 39*1031c584SApple OSS Distributions #include <sys/appleapiopts.h> 40*1031c584SApple OSS Distributions 41*1031c584SApple OSS Distributions #include <net/pfkeyv2.h> 42*1031c584SApple OSS Distributions #include <netkey/keydb.h> 43*1031c584SApple OSS Distributions 44*1031c584SApple OSS Distributions #ifdef BSD_KERNEL_PRIVATE 45*1031c584SApple OSS Distributions extern struct ipsecstat ipsec6stat; 46*1031c584SApple OSS Distributions extern struct secpolicy ip6_def_policy; 47*1031c584SApple OSS Distributions extern int ip6_esp_trans_deflev; 48*1031c584SApple OSS Distributions extern int ip6_esp_net_deflev; 49*1031c584SApple OSS Distributions extern int ip6_ah_trans_deflev; 50*1031c584SApple OSS Distributions extern int ip6_ah_net_deflev; 51*1031c584SApple OSS Distributions extern int ip6_ipsec_ecn; 52*1031c584SApple OSS Distributions extern int ip6_esp_randpad; 53*1031c584SApple OSS Distributions 54*1031c584SApple OSS Distributions struct ip6_out_args; 55*1031c584SApple OSS Distributions 56*1031c584SApple OSS Distributions extern struct secpolicy *ipsec6_getpolicybysock(struct mbuf *, u_int8_t, 57*1031c584SApple OSS Distributions struct socket *, int *); 58*1031c584SApple OSS Distributions extern struct secpolicy *ipsec6_getpolicybyaddr(struct mbuf *, u_int8_t, int, 59*1031c584SApple OSS Distributions int *); 60*1031c584SApple OSS Distributions extern int ipsec6_getpolicybyinterface(struct mbuf *, 61*1031c584SApple OSS Distributions u_int8_t, int, struct ip6_out_args *, int *, struct secpolicy **); 62*1031c584SApple OSS Distributions 63*1031c584SApple OSS Distributions struct inpcb; 64*1031c584SApple OSS Distributions 65*1031c584SApple OSS Distributions extern int ipsec6_in_reject_so(struct mbuf *, struct socket *); 66*1031c584SApple OSS Distributions extern int ipsec6_delete_pcbpolicy(struct inpcb *); 67*1031c584SApple OSS Distributions extern int ipsec6_set_policy(struct inpcb *inp, int optname, 68*1031c584SApple OSS Distributions caddr_t request, size_t len, int priv); 69*1031c584SApple OSS Distributions extern int ipsec6_in_reject(struct mbuf *, struct inpcb *); 70*1031c584SApple OSS Distributions 71*1031c584SApple OSS Distributions struct tcp6cb; 72*1031c584SApple OSS Distributions 73*1031c584SApple OSS Distributions extern size_t ipsec6_hdrsiz(struct mbuf *, u_int8_t, struct inpcb *); 74*1031c584SApple OSS Distributions 75*1031c584SApple OSS Distributions struct ip6_hdr; 76*1031c584SApple OSS Distributions extern const char *ipsec6_logpacketstr(struct ip6_hdr *, u_int32_t); 77*1031c584SApple OSS Distributions 78*1031c584SApple OSS Distributions extern int ipsec6_interface_output(struct ipsec_output_state *, ifnet_t, u_char *, struct mbuf *); 79*1031c584SApple OSS Distributions extern int ipsec6_output_trans(struct ipsec_output_state *, u_char *, 80*1031c584SApple OSS Distributions struct mbuf *, struct secpolicy *, int, int *); 81*1031c584SApple OSS Distributions extern int ipsec6_output_tunnel(struct ipsec_output_state *, 82*1031c584SApple OSS Distributions struct secpolicy *, int); 83*1031c584SApple OSS Distributions extern int ipsec6_tunnel_validate(struct mbuf *, int, u_int, 84*1031c584SApple OSS Distributions struct secasvar *, sa_family_t *); 85*1031c584SApple OSS Distributions #endif /* BSD_KERNEL_PRIVATE */ 86*1031c584SApple OSS Distributions #endif /* _NETINET6_IPSEC6_H_ */ 87