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