OSDN Git Service

2013.10.24
[uclinux-h8/uClinux-dist.git] / freeswan / klips / net / ipsec / ipsec_radij.h
1 /*
2  * @(#) Definitions relevant to the IPSEC <> radij tree interfacing
3  * Copyright (C) 1996, 1997  John Ioannidis.
4  * Copyright (C) 1998, 1999, 2000, 2001  Richard Guy Briggs.
5  * 
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License as published by the
8  * Free Software Foundation; either version 2 of the License, or (at your
9  * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
10  * 
11  * This program is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14  * for more details.
15  *
16  * RCSID $Id: ipsec_radij.h,v 1.17 2001/11/26 09:23:49 rgb Exp $
17  */
18
19 #ifndef _IPSEC_RADIJ_H
20
21 #include <freeswan.h>
22
23 int ipsec_walk(char *);
24
25 int ipsec_rj_walker_procprint(struct radij_node *, void *);
26 int ipsec_rj_walker_delete(struct radij_node *, void *);
27
28 struct wsbuf
29 {
30         char *buffer;
31         int length;
32         off_t offset;
33         int len;
34         int prev_len;
35         off_t begin;
36         off_t pos;
37 };
38
39 extern struct radij_node_head *rnh;
40 extern spinlock_t eroute_lock;
41
42 struct eroute * ipsec_findroute(struct sockaddr_encap *);
43
44 #define O1(x) (int)(((x)>>24)&0xff)
45 #define O2(x) (int)(((x)>>16)&0xff)
46 #define O3(x) (int)(((x)>>8)&0xff)
47 #define O4(x) (int)(((x))&0xff)
48
49 #ifdef CONFIG_IPSEC_DEBUG
50 extern int debug_radij;
51 void rj_dumptrees(void);
52
53 #define DB_RJ_DUMPTREES 0x0001
54 #define DB_RJ_FINDROUTE 0x0002
55 #endif /* CONFIG_IPSEC_DEBUG */
56
57 #define _IPSEC_RADIJ_H
58 #endif
59
60 /*
61  * $Log: ipsec_radij.h,v $
62  * Revision 1.17  2001/11/26 09:23:49  rgb
63  * Merge MCR's ipsec_sa, eroute, proc and struct lifetime changes.
64  *
65  * Revision 1.16.2.1  2001/09/25 02:21:17  mcr
66  *      ipsec_proto.h created to keep prototypes rather than deal with
67  *      cyclic dependancies of structures and prototypes in .h files.
68  *
69  * Revision 1.16  2001/09/15 16:24:04  rgb
70  * Re-inject first and last HOLD packet when an eroute REPLACE is done.
71  *
72  * Revision 1.15  2001/09/14 16:58:37  rgb
73  * Added support for storing the first and last packets through a HOLD.
74  *
75  * Revision 1.14  2001/09/08 21:13:32  rgb
76  * Added pfkey ident extension support for ISAKMPd. (NetCelo)
77  *
78  * Revision 1.13  2001/06/14 19:35:09  rgb
79  * Update copyright date.
80  *
81  * Revision 1.12  2001/05/27 06:12:11  rgb
82  * Added structures for pid, packet count and last access time to eroute.
83  * Added packet count to beginning of /proc/net/ipsec_eroute.
84  *
85  * Revision 1.11  2000/09/08 19:12:56  rgb
86  * Change references from DEBUG_IPSEC to CONFIG_IPSEC_DEBUG.
87  *
88  * Revision 1.10  1999/11/17 15:53:39  rgb
89  * Changed all occurrences of #include "../../../lib/freeswan.h"
90  * to #include <freeswan.h> which works due to -Ilibfreeswan in the
91  * klips/net/ipsec/Makefile.
92  *
93  * Revision 1.9  1999/10/01 00:01:23  rgb
94  * Added eroute structure locking.
95  *
96  * Revision 1.8  1999/04/11 00:28:59  henry
97  * GPL boilerplate
98  *
99  * Revision 1.7  1999/04/06 04:54:26  rgb
100  * Fix/Add RCSID Id: and Log: bits to make PHMDs happy.  This includes
101  * patch shell fixes.
102  *
103  * Revision 1.6  1999/01/22 06:23:26  rgb
104  * Cruft clean-out.
105  *
106  * Revision 1.5  1998/10/25 02:42:08  rgb
107  * Change return type on ipsec_breakroute and ipsec_makeroute and add an
108  * argument to be able to transmit more infomation about errors.
109  *
110  * Revision 1.4  1998/10/19 14:44:29  rgb
111  * Added inclusion of freeswan.h.
112  * sa_id structure implemented and used: now includes protocol.
113  *
114  * Revision 1.3  1998/07/28 00:03:31  rgb
115  * Comment out temporary inet_nto4u() kluge.
116  *
117  * Revision 1.2  1998/07/14 18:22:00  rgb
118  * Add function to clear the eroute table.
119  *
120  * Revision 1.1  1998/06/18 21:27:49  henry
121  * move sources from klips/src to klips/net/ipsec, to keep stupid
122  * kernel-build scripts happier in the presence of symlinks
123  *
124  * Revision 1.5  1998/05/25 20:30:38  rgb
125  * Remove temporary ipsec_walk, rj_deltree and rj_delnodes functions.
126  *
127  * Rename ipsec_rj_walker (ipsec_walk) to ipsec_rj_walker_procprint and
128  * add ipsec_rj_walker_delete.
129  *
130  * Revision 1.4  1998/05/21 13:02:56  rgb
131  * Imported definitions from ipsec_radij.c and radij.c to support /proc 3k
132  * limit fix.
133  *
134  * Revision 1.3  1998/04/21 21:29:09  rgb
135  * Rearrange debug switches to change on the fly debug output from user
136  * space.  Only kernel changes checked in at this time.  radij.c was also
137  * changed to temporarily remove buggy debugging code in rj_delete causing
138  * an OOPS and hence, netlink device open errors.
139  *
140  * Revision 1.2  1998/04/14 17:30:39  rgb
141  * Fix up compiling errors for radij tree memory reclamation.
142  *
143  * Revision 1.1  1998/04/09 03:06:10  henry
144  * sources moved up from linux/net/ipsec
145  *
146  * Revision 1.1.1.1  1998/04/08 05:35:04  henry
147  * RGB's ipsec-0.8pre2.tar.gz ipsec-0.8
148  *
149  * Revision 0.4  1997/01/15 01:28:15  ji
150  * No changes.
151  *
152  * Revision 0.3  1996/11/20 14:39:04  ji
153  * Minor cleanups.
154  * Rationalized debugging code.
155  *
156  * Revision 0.2  1996/11/02 00:18:33  ji
157  * First limited release.
158  *
159  *
160  */