Annotation of embedaddon/ipsec-tools/src/racoon/admin.h, revision 1.1.1.1
1.1 misho 1: /* $NetBSD: admin.h,v 1.8 2010/11/12 09:08:26 tteras Exp $ */
2:
3: /* Id: admin.h,v 1.11 2005/06/19 22:37:47 manubsd 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 _ADMIN_H
35: #define _ADMIN_H
36:
37: #define ADMINSOCK_PATH ADMINPORTDIR "/racoon.sock"
38:
39: extern char *adminsock_path;
40: extern uid_t adminsock_owner;
41: extern gid_t adminsock_group;
42: extern mode_t adminsock_mode;
43:
44: /* command for administration. */
45: /* NOTE: host byte order. */
46: struct admin_com {
47: u_int16_t ac_len; /* total packet length including data */
48: u_int16_t ac_cmd;
49: union {
50: int16_t ac_un_errno;
51: uint16_t ac_un_version;
52: uint16_t ac_un_len_high;
53: } u;
54: u_int16_t ac_proto;
55: };
56: #define ac_errno u.ac_un_errno
57: #define ac_version u.ac_un_version
58: #define ac_len_high u.ac_un_len_high
59:
60: /*
61: * Version field in request is valid.
62: */
63: #define ADMIN_FLAG_VERSION 0x8000
64: #define ADMIN_FLAG_LONG_REPLY 0x8000
65:
66: /*
67: * No data follows as the data.
68: * These don't use proto field.
69: */
70: #define ADMIN_RELOAD_CONF 0x0001
71: #define ADMIN_SHOW_SCHED 0x0002
72: #define ADMIN_SHOW_EVT 0x0003
73:
74: /*
75: * No data follows as the data.
76: * These use proto field.
77: */
78: #define ADMIN_SHOW_SA 0x0101
79: #define ADMIN_FLUSH_SA 0x0102
80:
81: /*
82: * The admin_com_indexes follows, see below.
83: */
84: #define ADMIN_DELETE_SA 0x0201
85: #define ADMIN_ESTABLISH_SA 0x0202
86: #define ADMIN_DELETE_ALL_SA_DST 0x0204 /* All SA for a given peer */
87:
88: #define ADMIN_GET_SA_CERT 0x0206
89:
90: /*
91: * The admin_com_indexes and admin_com_psk follow, see below.
92: */
93: #define ADMIN_ESTABLISH_SA_PSK 0x0203
94:
95: /*
96: * user login follows
97: */
98: #define ADMIN_LOGOUT_USER 0x0205 /* Delete SA for a given Xauth user */
99:
100: /*
101: * Range 0x08xx is reserved for privilege separation, see privsep.h
102: */
103:
104: /* the value of proto */
105: #define ADMIN_PROTO_ISAKMP 0x01ff
106: #define ADMIN_PROTO_IPSEC 0x02ff
107: #define ADMIN_PROTO_AH 0x0201
108: #define ADMIN_PROTO_ESP 0x0202
109: #define ADMIN_PROTO_INTERNAL 0x0301
110:
111: struct admin_com_indexes {
112: u_int8_t prefs;
113: u_int8_t prefd;
114: u_int8_t ul_proto;
115: u_int8_t reserved;
116: struct sockaddr_storage src;
117: struct sockaddr_storage dst;
118: };
119:
120: struct admin_com_psk {
121: int id_type;
122: size_t id_len;
123: size_t key_len;
124: /* Followed by id and key */
125: };
126:
127: extern int admin2pfkey_proto __P((u_int));
128:
129: #endif /* _ADMIN_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>