http://downloads.netgear.com/files/GPL/GPL_Source_V361j_DM111PSP_series_consumer_rele...
[bcm963xx.git] / userapps / opensource / ipsec-tools / src / racoon / localconf.h
1 /* $Id: localconf.h,v 1.1.1.1 2006/05/18 10:47:25 michaelc Exp $ */
2
3 /*
4  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
5  * All rights reserved.
6  * 
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  * 3. Neither the name of the project nor the names of its contributors
16  *    may be used to endorse or promote products derived from this software
17  *    without specific prior written permission.
18  * 
19  * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
20  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
23  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29  * SUCH DAMAGE.
30  */
31
32 #ifndef _LOCALCONF_H
33 #define _LOCALCONF_H
34
35 /* local configuration */
36
37 #define LC_DEFAULT_CF   SYSCONFDIR "/racoon.conf"
38
39 #define LC_PATHTYPE_INCLUDE     0
40 #define LC_PATHTYPE_PSK         1
41 #define LC_PATHTYPE_CERT        2
42 #define LC_PATHTYPE_BACKUPSA    3
43 #define LC_PATHTYPE_MAX         4
44
45 #define LC_DEFAULT_PAD_MAXSIZE          20
46 #define LC_DEFAULT_PAD_RANDOM           TRUE
47 #define LC_DEFAULT_PAD_RANDOMLEN        FALSE
48 #define LC_DEFAULT_PAD_STRICT           FALSE
49 #define LC_DEFAULT_PAD_EXCLTAIL         TRUE
50 #define LC_DEFAULT_RETRY_COUNTER        5
51 #define LC_DEFAULT_RETRY_INTERVAL       10
52 #define LC_DEFAULT_COUNT_PERSEND        1
53 #define LC_DEFAULT_RETRY_CHECKPH1       30
54 #define LC_DEFAULT_WAIT_PH2COMPLETE     30
55 #define LC_DEFAULT_NATT_KA_INTERVAL     20
56
57 #define LC_DEFAULT_SECRETSIZE   16      /* 128 bits */
58
59 #define LC_IDENTTYPE_MAX        5       /* XXX */
60
61 struct localconf {
62         char *racoon_conf;              /* configuration filename */
63
64         u_int16_t port_isakmp;          /* port for isakmp as default */
65         u_int16_t port_isakmp_natt;     /* port for NAT-T use */
66         u_int16_t port_admin;           /* port for admin */
67         int default_af;                 /* default address family */
68
69         int sock_admin;
70         int sock_pfkey;
71         int rtsock;                     /* routing socket */
72
73         int autograbaddr;
74         struct myaddrs *myaddrs;
75
76         char *pathinfo[LC_PATHTYPE_MAX];
77         vchar_t *ident[LC_IDENTTYPE_MAX]; /* base of Identifier payload. */
78
79         int pad_random;
80         int pad_randomlen;
81         int pad_maxsize;
82         int pad_strict;
83         int pad_excltail;
84
85         int retry_counter;              /* times to retry. */
86         int retry_interval;             /* interval each retry. */
87         int count_persend;              /* the number of packets each retry. */
88                                 /* above 3 values are copied into a handler. */
89
90         int retry_checkph1;
91         int wait_ph2complete;
92
93         int natt_ka_interval;           /* NAT-T keepalive interval. */
94
95         int secret_size;
96         int strict_address;             /* strictly check addresses. */
97
98         int complex_bundle;
99                 /*
100                  * If we want to make a packet "IP2 AH ESP IP1 ULP",
101                  * the SPD in KAME expresses AH transport + ESP tunnel.
102                  * So racoon sent the proposal contained such the order.
103                  * But lots of implementation interprets AH tunnel + ESP
104                  * tunnel in this case.  racoon has changed the format,
105                  * usually uses this format.  If the option, 'complex_bundle'
106                  * is enable, racoon uses old format.
107                  */
108 };
109
110 extern struct localconf *lcconf;
111
112 extern void initlcconf __P((void));
113 extern void flushlcconf __P((void));
114 extern vchar_t *getpskbyname __P((vchar_t *));
115 extern vchar_t *getpskbyaddr __P((struct sockaddr *));
116 extern void getpathname __P((char *, int, int, const char *));
117 extern int sittype2doi __P((int));
118 extern int doitype2doi __P((int));
119
120 #endif /* _LOCALCONF_H */