Annotation of src/sys/netipsec/keysock.h, Revision 1.5
1.5 ! degroote 1: /* $NetBSD: keysock.h,v 1.4 2005/12/11 12:25:06 christos Exp $ */
1.1 jonathan 2: /* $FreeBSD: src/sys/netipsec/keysock.h,v 1.1.4.1 2003/01/24 05:11:36 sam Exp $ */
3: /* $KAME: keysock.h,v 1.8 2000/03/27 05:11:06 sumikawa Exp $ */
4:
5: /*
6: * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
7: * All rights reserved.
8: *
9: * Redistribution and use in source and binary forms, with or without
10: * modification, are permitted provided that the following conditions
11: * are met:
12: * 1. Redistributions of source code must retain the above copyright
13: * notice, this list of conditions and the following disclaimer.
14: * 2. Redistributions in binary form must reproduce the above copyright
15: * notice, this list of conditions and the following disclaimer in the
16: * documentation and/or other materials provided with the distribution.
17: * 3. Neither the name of the project nor the names of its contributors
18: * may be used to endorse or promote products derived from this software
19: * without specific prior written permission.
20: *
21: * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
22: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24: * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
25: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31: * SUCH DAMAGE.
32: */
33:
34: #ifndef _NETIPSEC_KEYSOCK_H_
35: #define _NETIPSEC_KEYSOCK_H_
36:
37: /* statistics for pfkey socket */
38: struct pfkeystat {
39: /* kernel -> userland */
40: u_quad_t out_total; /* # of total calls */
41: u_quad_t out_bytes; /* total bytecount */
42: u_quad_t out_msgtype[256]; /* message type histogram */
43: u_quad_t out_invlen; /* invalid length field */
44: u_quad_t out_invver; /* invalid version field */
45: u_quad_t out_invmsgtype; /* invalid message type field */
46: u_quad_t out_tooshort; /* msg too short */
47: u_quad_t out_nomem; /* memory allocation failure */
48: u_quad_t out_dupext; /* duplicate extension */
49: u_quad_t out_invexttype; /* invalid extension type */
50: u_quad_t out_invsatype; /* invalid sa type */
51: u_quad_t out_invaddr; /* invalid address extension */
52: /* userland -> kernel */
53: u_quad_t in_total; /* # of total calls */
54: u_quad_t in_bytes; /* total bytecount */
55: u_quad_t in_msgtype[256]; /* message type histogram */
56: u_quad_t in_msgtarget[3]; /* one/all/registered */
57: u_quad_t in_nomem; /* memory allocation failure */
58: /* others */
59: u_quad_t sockerr; /* # of socket related errors */
60: };
61:
62: #define KEY_SENDUP_ONE 0
63: #define KEY_SENDUP_ALL 1
64: #define KEY_SENDUP_REGISTERED 2
65:
66: #ifdef _KERNEL
67: struct keycb {
68: struct rawcb kp_raw; /* rawcb */
69: int kp_promisc; /* promiscuous mode */
70: int kp_registered; /* registered socket */
71: };
72:
73: extern struct pfkeystat pfkeystat;
74:
1.5 ! degroote 75: int key_output (struct mbuf *, ...);
1.1 jonathan 76: #ifndef __NetBSD__
1.5 ! degroote 77: int key_usrreq (struct socket *,
! 78: int, struct mbuf *, struct mbuf *, struct mbuf *);
1.1 jonathan 79: #else
1.5 ! degroote 80: int key_usrreq (struct socket *,
! 81: int, struct mbuf *, struct mbuf *, struct mbuf *, struct lwp *);
1.1 jonathan 82: #endif
83:
1.5 ! degroote 84: int key_sendup (struct socket *, struct sadb_msg *, u_int, int);
! 85: int key_sendup_mbuf (struct socket *, struct mbuf *, int);
1.1 jonathan 86: #endif /* _KERNEL */
87:
1.3 elad 88: #endif /* !_NETIPSEC_KEYSOCK_H_ */
CVSweb <webmaster@jp.NetBSD.org>