162583Sitojun/* $FreeBSD: releng/11.0/lib/libipsec/libpfkey.h 92941 2002-03-22 09:22:15Z obrien $ */ 278064Sume/* $KAME: libpfkey.h,v 1.6 2001/03/05 18:22:17 thorpej Exp $ */ 362583Sitojun 462583Sitojun/* 562583Sitojun * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 662583Sitojun * All rights reserved. 762583Sitojun * 862583Sitojun * Redistribution and use in source and binary forms, with or without 962583Sitojun * modification, are permitted provided that the following conditions 1062583Sitojun * are met: 1162583Sitojun * 1. Redistributions of source code must retain the above copyright 1262583Sitojun * notice, this list of conditions and the following disclaimer. 1362583Sitojun * 2. Redistributions in binary form must reproduce the above copyright 1462583Sitojun * notice, this list of conditions and the following disclaimer in the 1562583Sitojun * documentation and/or other materials provided with the distribution. 1662583Sitojun * 3. Neither the name of the project nor the names of its contributors 1762583Sitojun * may be used to endorse or promote products derived from this software 1862583Sitojun * without specific prior written permission. 1962583Sitojun * 2062583Sitojun * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND 2162583Sitojun * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2262583Sitojun * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2362583Sitojun * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE 2462583Sitojun * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2562583Sitojun * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2662583Sitojun * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2762583Sitojun * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2862583Sitojun * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2962583Sitojun * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3062583Sitojun * SUCH DAMAGE. 3162583Sitojun */ 3262583Sitojun 3378064Sumestruct sadb_msg; 3492917Sobrienextern void pfkey_sadump(struct sadb_msg *); 3592917Sobrienextern void pfkey_spdump(struct sadb_msg *); 3662583Sitojun 3762583Sitojunstruct sockaddr; 3878064Sumestruct sadb_alg; 3992917Sobrienint ipsec_check_keylen(u_int, u_int, u_int); 4092917Sobrienint ipsec_check_keylen2(u_int, u_int, u_int); 4192917Sobrienint ipsec_get_keylen(u_int, u_int, struct sadb_alg *); 4292917Sobrienu_int pfkey_set_softrate(u_int, u_int); 4392917Sobrienu_int pfkey_get_softrate(u_int); 4492941Sobrienint pfkey_send_getspi(int, u_int, u_int, struct sockaddr *, struct sockaddr *, 4592941Sobrien u_int32_t, u_int32_t, u_int32_t, u_int32_t); 4692941Sobrienint pfkey_send_update(int, u_int, u_int, struct sockaddr *, struct sockaddr *, 4792941Sobrien u_int32_t, u_int32_t, u_int, caddr_t, u_int, u_int, u_int, u_int, 4892941Sobrien u_int, u_int32_t, u_int64_t, u_int64_t, u_int64_t, u_int32_t); 4992941Sobrienint pfkey_send_add(int, u_int, u_int, struct sockaddr *, struct sockaddr *, 5092941Sobrien u_int32_t, u_int32_t, u_int, caddr_t, u_int, u_int, u_int, u_int, 5192941Sobrien u_int, u_int32_t, u_int64_t, u_int64_t, u_int64_t, u_int32_t); 5292941Sobrienint pfkey_send_delete(int, u_int, u_int, struct sockaddr *, struct sockaddr *, 5392941Sobrien u_int32_t); 5492941Sobrienint pfkey_send_delete_all(int, u_int, u_int, struct sockaddr *, 5592941Sobrien struct sockaddr *); 5692941Sobrienint pfkey_send_get(int, u_int, u_int, struct sockaddr *, struct sockaddr *, 5792941Sobrien u_int32_t); 5892917Sobrienint pfkey_send_register(int, u_int); 5992917Sobrienint pfkey_recv_register(int); 6092917Sobrienint pfkey_set_supported(struct sadb_msg *, int); 6192917Sobrienint pfkey_send_flush(int, u_int); 6292917Sobrienint pfkey_send_dump(int, u_int); 6392917Sobrienint pfkey_send_promisc_toggle(int, int); 6492941Sobrienint pfkey_send_spdadd(int, struct sockaddr *, u_int, struct sockaddr *, u_int, 6592941Sobrien u_int, caddr_t, int, u_int32_t); 6692941Sobrienint pfkey_send_spdadd2(int, struct sockaddr *, u_int, struct sockaddr *, u_int, 6792941Sobrien u_int, u_int64_t, u_int64_t, caddr_t, int, u_int32_t); 6892941Sobrienint pfkey_send_spdupdate(int, struct sockaddr *, u_int, struct sockaddr *, 6992941Sobrien u_int, u_int, caddr_t, int, u_int32_t); 7092941Sobrienint pfkey_send_spdupdate2(int, struct sockaddr *, u_int, struct sockaddr *, 7192941Sobrien u_int, u_int, u_int64_t, u_int64_t, caddr_t, int, u_int32_t); 7292941Sobrienint pfkey_send_spddelete(int, struct sockaddr *, u_int, struct sockaddr *, 7392941Sobrien u_int, u_int, caddr_t, int, u_int32_t); 7492917Sobrienint pfkey_send_spddelete2(int, u_int32_t); 7592917Sobrienint pfkey_send_spdget(int, u_int32_t); 7692941Sobrienint pfkey_send_spdsetidx(int, struct sockaddr *, u_int, struct sockaddr *, 7792941Sobrien u_int, u_int, caddr_t, int, u_int32_t); 7892917Sobrienint pfkey_send_spdflush(int); 7992917Sobrienint pfkey_send_spddump(int); 8062583Sitojun 8192917Sobrienint pfkey_open(void); 8292917Sobrienvoid pfkey_close(int); 8392917Sobrienstruct sadb_msg *pfkey_recv(int); 8492917Sobrienint pfkey_send(int, struct sadb_msg *, int); 8592917Sobrienint pfkey_align(struct sadb_msg *, caddr_t *); 8692917Sobrienint pfkey_check(caddr_t *); 87