]> git.ipfire.org Git - people/ms/strongswan.git/blame - linux/include/freeswan/ipsec_eroute.h
- fixed stroke error output to starter
[people/ms/strongswan.git] / linux / include / freeswan / ipsec_eroute.h
CommitLineData
997358a6
MW
1/*
2 * @(#) declarations of eroute structures
3 *
4 * Copyright (C) 1996, 1997 John Ioannidis.
5 * Copyright (C) 1998, 1999, 2000, 2001 Richard Guy Briggs <rgb@freeswan.org>
6 * Copyright (C) 2001 Michael Richardson <mcr@freeswan.org>
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
12 *
13 * This program is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 * for more details.
17 *
18 * RCSID $Id: ipsec_eroute.h,v 1.1 2004/03/15 20:35:25 as Exp $
19 *
20 * derived from ipsec_encap.h 1.15 on 2001/9/18 by mcr.
21 *
22 */
23
24#ifndef _IPSEC_EROUTE_H_
25
26#include "radij.h"
27#include "ipsec_encap.h"
28#include "ipsec_radij.h"
29
30/*
31 * The "type" is really part of the address as far as the routing
32 * system is concerned. By using only one bit in the type field
33 * for each type, we sort-of make sure that different types of
34 * encapsulation addresses won't be matched against the wrong type.
35 */
36
37/*
38 * An entry in the radix tree
39 */
40
41struct rjtentry
42{
43 struct radij_node rd_nodes[2]; /* tree glue, and other values */
44#define rd_key(r) ((struct sockaddr_encap *)((r)->rd_nodes->rj_key))
45#define rd_mask(r) ((struct sockaddr_encap *)((r)->rd_nodes->rj_mask))
46 short rd_flags;
47 short rd_count;
48};
49
50struct ident
51{
52 __u16 type; /* identity type */
53 __u64 id; /* identity id */
54 __u8 len; /* identity len */
55 caddr_t data; /* identity data */
56};
57
58/*
59 * An encapsulation route consists of a pointer to a
60 * radix tree entry and a SAID (a destination_address/SPI/protocol triple).
61 */
62
63struct eroute
64{
65 struct rjtentry er_rjt;
66 struct sa_id er_said;
67 uint32_t er_pid;
68 uint32_t er_count;
69 uint64_t er_lasttime;
70 struct sockaddr_encap er_eaddr; /* MCR get rid of _encap, it is silly*/
71 struct sockaddr_encap er_emask;
72 struct ident er_ident_s;
73 struct ident er_ident_d;
74 struct sk_buff* er_first;
75 struct sk_buff* er_last;
76};
77
78#define er_dst er_said.dst
79#define er_spi er_said.spi
80
81#define _IPSEC_EROUTE_H_
82#endif /* _IPSEC_EROUTE_H_ */
83
84/*
85 * $Log: ipsec_eroute.h,v $
86 * Revision 1.1 2004/03/15 20:35:25 as
87 * added files from freeswan-2.04-x509-1.5.3
88 *
89 * Revision 1.3 2002/04/24 07:36:46 mcr
90 * Moved from ./klips/net/ipsec/ipsec_eroute.h,v
91 *
92 * Revision 1.2 2001/11/26 09:16:13 rgb
93 * Merge MCR's ipsec_sa, eroute, proc and struct lifetime changes.
94 *
95 * Revision 1.1.2.1 2001/09/25 02:18:54 mcr
96 * struct eroute moved to ipsec_eroute.h
97 *
98 *
99 * Local variables:
100 * c-file-style: "linux"
101 * End:
102 *
103 */