OSDN Git Service

2013.10.24
[uclinux-h8/uClinux-dist.git] / freeswan / klips / net / ipsec / ipsec_encap.h
1 /*
2  * declarations relevant to encapsulation-like operations
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_encap.h,v 1.16 2001/11/26 09:23:47 rgb Exp $
17  */
18
19 #ifndef _IPSEC_ENCAP_H_
20
21 #define SENT_IP4        0x0008  /* data is two struct in_addr */
22                         /* (2 * sizeof(struct in_addr)) */
23                         /* sizeof(struct sockaddr_encap)
24                            - offsetof(struct sockaddr_encap, Sen.Sip4.Src) */
25
26 #define SEN_HDRLEN      (2*sizeof(__u8)+sizeof(__u16))
27                         /* offsetof(struct sockaddr_encap, Sen.Sip4.Src) */
28
29 #define SEN_IP4_SRCOFF  (0)
30 #define SEN_IP4_DSTOFF (sizeof (struct in_addr))
31                         /* offsetof(struct sockaddr_encap, Sen.Sip4.Dst)
32                            - offsetof(struct sockaddr_encap, Sen.Sip4.Src) */
33 #define SEN_IP4_OPTOFF  (2 * sizeof (struct in_addr))
34                         /* sizeof(struct sockaddr_encap)
35                            - offsetof(struct sockaddr_encap, Sen.Sip4.Src) */
36
37 #define SEN_IP4_LEN     (SENT_HDRLEN + SENT_IP4_OPTOFF)
38                         /* sizeof(struct sockaddr_encap) */
39
40 #ifdef CONFIG_IPSEC_DEBUG
41 #define DB_ER_PROCFS    0x0001
42 #define DB_SP_PROCFS    0x0001
43 #endif /* CONFIG_IPSEC_DEBUG */
44
45 struct sockaddr_encap
46 {
47         __u8    sen_len;                /* length */
48         __u8    sen_family;             /* AF_ENCAP */
49         __u16   sen_type;               /* see SENT_* */
50         union
51         {
52                 struct                  /* SENT_IP4 */
53                 {
54                         struct in_addr Src;
55                         struct in_addr Dst;
56                 } Sip4;
57         } Sen;
58 };
59
60 #define sen_ip_src      Sen.Sip4.Src
61 #define sen_ip_dst      Sen.Sip4.Dst
62
63 #ifndef AF_ENCAP
64 #define AF_ENCAP 26
65 #endif /* AF_ENCAP */
66
67 #define _IPSEC_ENCAP_H_
68 #endif /* _IPSEC_ENCAP_H_ */
69
70 /*
71  * $Log: ipsec_encap.h,v $
72  * Revision 1.16  2001/11/26 09:23:47  rgb
73  * Merge MCR's ipsec_sa, eroute, proc and struct lifetime changes.
74  *
75  * Revision 1.15.2.1  2001/09/25 02:18:54  mcr
76  *      struct eroute moved to ipsec_eroute.h
77  *
78  * Revision 1.15  2001/09/14 16:58:36  rgb
79  * Added support for storing the first and last packets through a HOLD.
80  *
81  * Revision 1.14  2001/09/08 21:13:31  rgb
82  * Added pfkey ident extension support for ISAKMPd. (NetCelo)
83  *
84  * Revision 1.13  2001/06/14 19:35:08  rgb
85  * Update copyright date.
86  *
87  * Revision 1.12  2001/05/27 06:12:10  rgb
88  * Added structures for pid, packet count and last access time to eroute.
89  * Added packet count to beginning of /proc/net/ipsec_eroute.
90  *
91  * Revision 1.11  2000/09/08 19:12:56  rgb
92  * Change references from DEBUG_IPSEC to CONFIG_IPSEC_DEBUG.
93  *
94  * Revision 1.10  2000/03/22 16:15:36  rgb
95  * Fixed renaming of dev_get (MB).
96  *
97  * Revision 1.9  2000/01/21 06:13:26  rgb
98  * Added a macro for AF_ENCAP
99  *
100  * Revision 1.8  1999/12/31 14:56:55  rgb
101  * MB fix for 2.3 dev-use-count.
102  *
103  * Revision 1.7  1999/11/18 04:09:18  rgb
104  * Replaced all kernel version macros to shorter, readable form.
105  *
106  * Revision 1.6  1999/09/24 00:34:13  rgb
107  * Add Marc Boucher's support for 2.3.xx+.
108  *
109  * Revision 1.5  1999/04/11 00:28:57  henry
110  * GPL boilerplate
111  *
112  * Revision 1.4  1999/04/06 04:54:25  rgb
113  * Fix/Add RCSID Id: and Log: bits to make PHMDs happy.  This includes
114  * patch shell fixes.
115  *
116  * Revision 1.3  1998/10/19 14:44:28  rgb
117  * Added inclusion of freeswan.h.
118  * sa_id structure implemented and used: now includes protocol.
119  *
120  * Revision 1.2  1998/07/14 18:19:33  rgb
121  * Added #ifdef __KERNEL__ directives to restrict scope of header.
122  *
123  * Revision 1.1  1998/06/18 21:27:44  henry
124  * move sources from klips/src to klips/net/ipsec, to keep stupid
125  * kernel-build scripts happier in the presence of symlinks
126  *
127  * Revision 1.2  1998/04/21 21:29:10  rgb
128  * Rearrange debug switches to change on the fly debug output from user
129  * space.  Only kernel changes checked in at this time.  radij.c was also
130  * changed to temporarily remove buggy debugging code in rj_delete causing
131  * an OOPS and hence, netlink device open errors.
132  *
133  * Revision 1.1  1998/04/09 03:05:58  henry
134  * sources moved up from linux/net/ipsec
135  *
136  * Revision 1.1.1.1  1998/04/08 05:35:02  henry
137  * RGB's ipsec-0.8pre2.tar.gz ipsec-0.8
138  *
139  * Revision 0.4  1997/01/15 01:28:15  ji
140  * Minor cosmetic changes.
141  *
142  * Revision 0.3  1996/11/20 14:35:48  ji
143  * Minor Cleanup.
144  * Rationalized debugging code.
145  *
146  * Revision 0.2  1996/11/02 00:18:33  ji
147  * First limited release.
148  *
149  *
150  */