OSDN Git Service

2013.10.24
[uclinux-h8/uClinux-dist.git] / freeswan / klips / net / ipsec / ipsec_rcv.h
1 /*
2  * 
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_rcv.h,v 1.14 2001/09/07 22:15:48 rgb Exp $
17  */
18
19 #define DB_RX_PKTRX     0x0001
20 #define DB_RX_PKTRX2    0x0002
21 #define DB_RX_DMP       0x0004
22 #define DB_RX_TDB       0x0010
23 #define DB_RX_XF        0x0020
24 #define DB_RX_IPAD      0x0040
25 #define DB_RX_INAU      0x0080
26 #define DB_RX_OINFO     0x0100
27 #define DB_RX_OINFO2    0x0200
28 #define DB_RX_OH        0x0400
29 #define DB_RX_REPLAY    0x0800
30
31 #ifdef __KERNEL__
32 /* struct options; */
33
34 #define __NO_VERSION__
35 #include <linux/module.h>
36 #include <linux/config.h>       /* for CONFIG_IP_FORWARD */
37 #include <linux/version.h>
38 #include <freeswan.h>
39
40 extern int
41 #ifdef PROTO_HANDLER_SINGLE_PARM
42 ipsec_rcv(struct sk_buff *skb);
43 #else /* PROTO_HANDLER_SINGLE_PARM */
44 ipsec_rcv(struct sk_buff *skb,
45 #ifdef NET_21
46           unsigned short xlen);
47 #else /* NET_21 */
48           struct device *dev,
49           struct options *opt, 
50           __u32 daddr,
51           unsigned short len,
52           __u32 saddr,
53           int redo,
54           struct inet_protocol *protocol);
55 #endif /* NET_21 */
56 #endif /* PROTO_HANDLER_SINGLE_PARM */
57
58 #ifdef CONFIG_IPSEC_DEBUG
59 extern int debug_rcv;
60 #endif /* CONFIG_IPSEC_DEBUG */
61 extern int sysctl_ipsec_inbound_policy_check;
62 #endif /* __KERNEL__ */
63
64 /*
65  * $Log: ipsec_rcv.h,v $
66  * Revision 1.14  2001/09/07 22:15:48  rgb
67  * Fix for removal of transport layer protocol handler arg in 2.4.4.
68  *
69  * Revision 1.13  2001/06/14 19:35:09  rgb
70  * Update copyright date.
71  *
72  * Revision 1.12  2001/03/16 07:36:44  rgb
73  * Fixed #endif comment to sate compiler.
74  *
75  * Revision 1.11  2000/09/21 04:34:21  rgb
76  * Moved declaration of sysctl_ipsec_inbound_policy_check outside
77  * CONFIG_IPSEC_DEBUG. (MB)
78  *
79  * Revision 1.10  2000/09/18 02:36:10  rgb
80  * Exported sysctl_ipsec_inbound_policy_check for skb_decompress().
81  *
82  * Revision 1.9  2000/09/08 19:12:56  rgb
83  * Change references from DEBUG_IPSEC to CONFIG_IPSEC_DEBUG.
84  *
85  * Revision 1.8  1999/11/18 04:09:19  rgb
86  * Replaced all kernel version macros to shorter, readable form.
87  *
88  * Revision 1.7  1999/05/25 01:45:37  rgb
89  * Fix version macros for 2.0.x as a module.
90  *
91  * Revision 1.6  1999/05/08 21:24:27  rgb
92  * Add includes for 2.2.x include into net/ipv4/protocol.c
93  *
94  * Revision 1.5  1999/05/05 22:02:32  rgb
95  * Add a quick and dirty port to 2.2 kernels by Marc Boucher <marc@mbsi.ca>.
96  *
97  * Revision 1.4  1999/04/11 00:28:59  henry
98  * GPL boilerplate
99  *
100  * Revision 1.3  1999/04/06 04:54:27  rgb
101  * Fix/Add RCSID Id: and Log: bits to make PHMDs happy.  This includes
102  * patch shell fixes.
103  *
104  * Revision 1.2  1999/01/22 20:06:59  rgb
105  * Fixed cut-and-paste error from ipsec_esp.h.
106  *
107  * Revision 1.1  1999/01/21 20:29:12  rgb
108  * Converted from transform switching to algorithm switching.
109  *
110  * Log: ipsec_esp.h,v 
111  * Revision 1.4  1998/08/12 00:07:32  rgb
112  * Added data structures for new xforms: null, {,3}dessha1.
113  *
114  * Revision 1.3  1998/07/14 15:57:01  rgb
115  * Add #ifdef __KERNEL__ to protect kernel-only structures.
116  *
117  * Revision 1.2  1998/06/25 19:33:46  rgb
118  * Add prototype for protocol receive function.
119  * Rearrange for more logical layout.
120  *
121  * Revision 1.1  1998/06/18 21:27:45  henry
122  * move sources from klips/src to klips/net/ipsec, to keep stupid
123  * kernel-build scripts happier in the presence of symlinks
124  *
125  * Revision 1.6  1998/06/05 02:28:08  rgb
126  * Minor comment fix.
127  *
128  * Revision 1.5  1998/05/27 22:34:00  rgb
129  * Changed structures to accomodate key separation.
130  *
131  * Revision 1.4  1998/05/18 22:28:43  rgb
132  * Disable key printing facilities from /proc/net/ipsec_*.
133  *
134  * Revision 1.3  1998/04/21 21:29:07  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/12 22:03:20  rgb
141  * Updated ESP-3DES-HMAC-MD5-96,
142  *      ESP-DES-HMAC-MD5-96,
143  *      AH-HMAC-MD5-96,
144  *      AH-HMAC-SHA1-96 since Henry started freeswan cvs repository
145  * from old standards (RFC182[5-9] to new (as of March 1998) drafts.
146  *
147  * Fixed eroute references in /proc/net/ipsec*.
148  *
149  * Started to patch module unloading memory leaks in ipsec_netlink and
150  * radij tree unloading.
151  *
152  * Revision 1.1  1998/04/09 03:06:00  henry
153  * sources moved up from linux/net/ipsec
154  *
155  * Revision 1.1.1.1  1998/04/08 05:35:02  henry
156  * RGB's ipsec-0.8pre2.tar.gz ipsec-0.8
157  *
158  * Revision 0.5  1997/06/03 04:24:48  ji
159  * Added ESP-3DES-MD5-96 transform.
160  *
161  * Revision 0.4  1997/01/15 01:28:15  ji
162  * Added definitions for new ESP transforms.
163  *
164  * Revision 0.3  1996/11/20 14:35:48  ji
165  * Minor Cleanup.
166  * Rationalized debugging code.
167  *
168  * Revision 0.2  1996/11/02 00:18:33  ji
169  * First limited release.
170  *
171  *
172  */
173
174