aboutsummaryrefslogtreecommitdiffstats
path: root/Source/charon/doc/Architecture.txt
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2006-04-04 12:45:29 +0000
committerMartin Willi <martin@strongswan.org>2006-04-04 12:45:29 +0000
commitf2ee13a7e844c5b107137ca21136684c610f2864 (patch)
treef90e948f8ad1f356c1d326ba8c302aace5cb6e98 /Source/charon/doc/Architecture.txt
parentefadbf79e9c864578bfd1277d824e69b2989aac5 (diff)
downloadstrongswan-f2ee13a7e844c5b107137ca21136684c610f2864.tar.bz2
strongswan-f2ee13a7e844c5b107137ca21136684c610f2864.tar.xz
- improved strokeing
- down connection - status - some other tweaks
Diffstat (limited to 'Source/charon/doc/Architecture.txt')
-rw-r--r--Source/charon/doc/Architecture.txt84
1 files changed, 42 insertions, 42 deletions
diff --git a/Source/charon/doc/Architecture.txt b/Source/charon/doc/Architecture.txt
index 81b3e2f97..3e8855fa9 100644
--- a/Source/charon/doc/Architecture.txt
+++ b/Source/charon/doc/Architecture.txt
@@ -9,35 +9,35 @@ Charon uses another socket interface, called stroke. Stroke uses another
format as whack and therefore is not compatible to whack. The starter utility,
wich does fast configuration parsing, speaks both the protocols, whack and
stroke. It also handles daemon startup and termination.
-Pluto uses starter for some commans, for other it uses the whack utility. To be
+Pluto uses starter for some commands, for other it uses the whack utility. To be
as close to pluto as possible, charon has the same split up of commands to
starter and stroke. All commands are wrapped together in the ipsec script, which
allows transparent control of both daemons.
+-----------------------------------------+
- ¦ ipsec ¦
+ | ipsec |
+-----+--------------+---------------+----+
- ¦ ¦ ¦
- ¦ ¦ ¦
- ¦ +-----+-----+ ¦
- +-----+----+ ¦ ¦ +-----+----+
- ¦ ¦ ¦ starter ¦ ¦ ¦
- ¦ stroke ¦ ¦ ¦ ¦ whack ¦
- ¦ ¦ +---+--+----+ ¦ ¦
- +------+---+ ¦ ¦ +--+-------+
- ¦ ¦ ¦ ¦
- +---+------+ ¦ ¦ +------+--+
- ¦ ¦ ¦ ¦ ¦ ¦
- ¦ charon +----+ +----+ pluto ¦
- ¦ ¦ ¦ ¦
+ | | |
+ | | |
+ | +-----+-----+ |
+ +-----+----+ | | +-----+----+
+ | | | starter | | |
+ | stroke | | | | whack |
+ | | +---+--+----+ | |
+ +------+---+ | | +--+-------+
+ | | | |
+ +---+------+ | | +------+--+
+ | | | | | |
+ | charon +----+ +----+ pluto |
+ | | | |
+-----+----+ +----+----+
- ¦ ¦
- +-----+----+ ¦
- ¦ LSF ¦ ¦
- +-----+----+ ¦
- ¦ ¦
+ | |
+ +-----+----+ |
+ | LSF | |
+ +-----+----+ |
+ | |
+-----+----+ +----+----+
- ¦ RAW Sock ¦ ¦ UDP/500 ¦
+ | RAW Sock | | UDP/500 |
+----------+ +---------+
Since IKEv2 uses the same port as IKEv1, both daemons must listen to UDP port
@@ -60,28 +60,28 @@ execution SA-management. Beside the thread-pool, there are some special purpose
threads which do their job for the common health of the daemon.
+------+
- ¦ E Q ¦
- ¦ v u ¦---+ +------+ +------+
- ¦ e e ¦ ¦ ¦ ¦ ¦ IKE- ¦
- ¦ n u ¦ +-----------+ ¦ ¦--¦ SA ¦
- ¦ t e ¦ ¦ ¦ ¦ I M ¦ +------+
- +------------+ ¦ - ¦ ¦ Scheduler ¦ ¦ K a ¦
- ¦ receiver ¦ +------+ ¦ ¦ ¦ E n ¦ +------+
- +----+-------+ +-----------+ ¦ - a ¦ ¦ IKE- ¦
- ¦ ¦ +------+ ¦ ¦ S g ¦--¦ SA ¦
- +-------+--+ +-----¦ J Q ¦---+ +------------+ ¦ A e ¦ +------+
- -¦ socket ¦ ¦ o u ¦ ¦ ¦ ¦ - r ¦
- +-------+--+ ¦ b e ¦ ¦ Thread- ¦ ¦ ¦
- ¦ ¦ - u ¦ ¦ Pool ¦ ¦ ¦
- +----+-------+ ¦ e ¦------¦ ¦---¦ ¦
- ¦ sender ¦ +------+ +------------+ +------+
+ | E Q |
+ | v u |---+ +------+ +------+
+ | e e | | | | | IKE- |
+ | n u | +-----------+ | |--| SA |
+ | t e | | | | I M | +------+
+ +------------+ | - | | Scheduler | | K a |
+ | receiver | +------+ | | | E n | +------+
+ +----+-------+ +-----------+ | - a | | IKE- |
+ | | +------+ | | S g |--| SA |
+ +-------+--+ +-----| J Q |---+ +------------+ | A e | +------+
+ -| socket | | o u | | | | - r |
+ +-------+--+ | b e | | Thread- | | |
+ | | - u | | Pool | | |
+ +----+-------+ | e |------| |---| |
+ | sender | +------+ +------------+ +------+
+----+-------+
- ¦ +------+
- ¦ ¦ S Q ¦
- ¦ ¦ e u ¦
- ¦ ¦ n e ¦
- +------------¦ d u ¦
- ¦ - e ¦
+ | +------+
+ | | S Q |
+ | | e u |
+ | | n e |
+ +------------| d u |
+ | - e |
+--+---+
The thread-pool is the heart of the architecture. It processes jobs from a