aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libcharon/Android.mk4
-rw-r--r--src/libcharon/Makefile.am4
-rw-r--r--src/libcharon/config/child_cfg.h36
-rw-r--r--src/libcharon/daemon.c6
-rw-r--r--src/libcharon/daemon.h8
-rw-r--r--src/libcharon/kernel/kernel_handler.h2
-rw-r--r--src/libhydra/Android.mk4
-rw-r--r--src/libhydra/Makefile.am4
-rw-r--r--src/libhydra/hydra.c2
-rw-r--r--src/libhydra/hydra.h9
-rw-r--r--src/libhydra/kernel/kernel_interface.c (renamed from src/libcharon/kernel/kernel_interface.c)2
-rw-r--r--src/libhydra/kernel/kernel_interface.h (renamed from src/libcharon/kernel/kernel_interface.h)3
-rw-r--r--src/libhydra/kernel/kernel_ipsec.c (renamed from src/libcharon/kernel/kernel_ipsec.c)0
-rw-r--r--src/libhydra/kernel/kernel_ipsec.h (renamed from src/libcharon/kernel/kernel_ipsec.h)33
-rw-r--r--src/libhydra/kernel/kernel_listener.h (renamed from src/libcharon/kernel/kernel_listener.h)2
-rw-r--r--src/libhydra/kernel/kernel_net.h (renamed from src/libcharon/kernel/kernel_net.h)2
16 files changed, 61 insertions, 60 deletions
diff --git a/src/libcharon/Android.mk b/src/libcharon/Android.mk
index f275998d2..2724b9b76 100644
--- a/src/libcharon/Android.mk
+++ b/src/libcharon/Android.mk
@@ -41,10 +41,6 @@ encoding/payloads/ts_payload.c encoding/payloads/ts_payload.h \
encoding/payloads/unknown_payload.c encoding/payloads/unknown_payload.h \
encoding/payloads/vendor_id_payload.c encoding/payloads/vendor_id_payload.h \
kernel/kernel_handler.c kernel/kernel_handler.h \
-kernel/kernel_interface.c kernel/kernel_interface.h \
-kernel/kernel_ipsec.c kernel/kernel_ipsec.h \
-kernel/kernel_net.h \
-kernel/kernel_listener.h \
network/packet.c network/packet.h \
network/receiver.c network/receiver.h \
network/sender.c network/sender.h \
diff --git a/src/libcharon/Makefile.am b/src/libcharon/Makefile.am
index 9fc67c7b3..ca2b8ffaf 100644
--- a/src/libcharon/Makefile.am
+++ b/src/libcharon/Makefile.am
@@ -39,10 +39,6 @@ encoding/payloads/ts_payload.c encoding/payloads/ts_payload.h \
encoding/payloads/unknown_payload.c encoding/payloads/unknown_payload.h \
encoding/payloads/vendor_id_payload.c encoding/payloads/vendor_id_payload.h \
kernel/kernel_handler.c kernel/kernel_handler.h \
-kernel/kernel_interface.c kernel/kernel_interface.h \
-kernel/kernel_ipsec.c kernel/kernel_ipsec.h \
-kernel/kernel_net.h \
-kernel/kernel_listener.h \
network/packet.c network/packet.h \
network/receiver.c network/receiver.h \
network/sender.c network/sender.h \
diff --git a/src/libcharon/config/child_cfg.h b/src/libcharon/config/child_cfg.h
index d34835ead..a14d96c92 100644
--- a/src/libcharon/config/child_cfg.h
+++ b/src/libcharon/config/child_cfg.h
@@ -25,8 +25,6 @@
typedef enum action_t action_t;
typedef enum ipcomp_transform_t ipcomp_transform_t;
-typedef struct lifetime_cfg_t lifetime_cfg_t;
-typedef struct mark_t mark_t;
typedef struct child_cfg_t child_cfg_t;
#include <library.h>
@@ -68,32 +66,6 @@ enum ipcomp_transform_t {
extern enum_name_t *ipcomp_transform_names;
/**
- * A lifetime_cfg_t defines the lifetime limits of a CHILD_SA.
- *
- * Set any of these values to 0 to ignore.
- */
-struct lifetime_cfg_t {
- struct {
- /** Limit before the CHILD_SA gets invalid. */
- u_int64_t life;
- /** Limit before the CHILD_SA gets rekeyed. */
- u_int64_t rekey;
- /** The range of a random value subtracted from rekey. */
- u_int64_t jitter;
- } time, bytes, packets;
-};
-
-/**
- * A mark_t defines an optional mark in a CHILD_SA.
- */
-struct mark_t {
- /** Mark value */
- u_int32_t value;
- /** Mark mask */
- u_int32_t mask;
-};
-
-/**
* A child_cfg_t defines the config template for a CHILD_SA.
*
* After creation, proposals and traffic selectors may be added to the config.
@@ -238,7 +210,7 @@ struct child_cfg_t {
* Check whether IPComp should be used, if the other peer supports it.
*
* @return TRUE, if IPComp should be used
- * FALSE, otherwise
+ * FALSE, otherwise
*/
bool (*use_ipcomp)(child_cfg_t *this);
@@ -259,7 +231,7 @@ struct child_cfg_t {
/**
* Optional mark for CHILD_SA
*
- * @param inbound TRUE for inbound, FALSE for outbound
+ * @param inbound TRUE for inbound, FALSE for outbound
* @return mark
*/
mark_t (*get_mark)(child_cfg_t *this, bool inbound);
@@ -277,7 +249,7 @@ struct child_cfg_t {
* Check whether IPsec transport SA should be set up in proxy mode
*
* @return TRUE, if proxy mode should be used
- * FALSE, otherwise
+ * FALSE, otherwise
*/
bool (*use_proxy_mode)(child_cfg_t *this);
@@ -285,7 +257,7 @@ struct child_cfg_t {
* Check whether IPsec policies should be installed in the kernel
*
* @return TRUE, if IPsec kernel policies should be installed
- * FALSE, otherwise
+ * FALSE, otherwise
*/
bool (*install_policy)(child_cfg_t *this);
diff --git a/src/libcharon/daemon.c b/src/libcharon/daemon.c
index 3e6ca0316..f05870d61 100644
--- a/src/libcharon/daemon.c
+++ b/src/libcharon/daemon.c
@@ -115,10 +115,9 @@ static void destroy(private_daemon_t *this)
#ifdef CAPABILITIES_LIBCAP
cap_free(this->caps);
#endif /* CAPABILITIES_LIBCAP */
+ DESTROY_IF(this->kernel_handler);
DESTROY_IF(this->public.traps);
DESTROY_IF(this->public.ike_sa_manager);
- DESTROY_IF(this->kernel_handler);
- DESTROY_IF(this->public.kernel_interface);
DESTROY_IF(this->public.controller);
DESTROY_IF(this->public.eap);
DESTROY_IF(this->public.sim);
@@ -368,10 +367,9 @@ METHOD(daemon_t, initialize, bool,
this->public.eap = eap_manager_create();
this->public.sim = sim_manager_create();
this->public.backends = backend_manager_create();
- this->public.kernel_interface = kernel_interface_create();
- this->kernel_handler = kernel_handler_create();
this->public.socket = socket_manager_create();
this->public.traps = trap_manager_create();
+ this->kernel_handler = kernel_handler_create();
/* load plugins, further infrastructure may need it */
if (!lib->plugins->load(lib->plugins, NULL,
diff --git a/src/libcharon/daemon.h b/src/libcharon/daemon.h
index b7d5d9f77..783f43c5f 100644
--- a/src/libcharon/daemon.h
+++ b/src/libcharon/daemon.h
@@ -37,7 +37,7 @@
* @defgroup payloads payloads
* @ingroup encoding
*
- * @defgroup kernel kernel
+ * @defgroup ckernel kernel
* @ingroup libcharon
*
* @defgroup network network
@@ -140,7 +140,6 @@ typedef struct daemon_t daemon_t;
#include <network/sender.h>
#include <network/receiver.h>
#include <network/socket_manager.h>
-#include <kernel/kernel_interface.h>
#include <control/controller.h>
#include <bus/bus.h>
#include <bus/listeners/file_logger.h>
@@ -222,11 +221,6 @@ struct daemon_t {
linked_list_t *sys_loggers;
/**
- * Kernel Interface to communicate with kernel
- */
- kernel_interface_t *kernel_interface;
-
- /**
* Controller to control the daemon
*/
controller_t *controller;
diff --git a/src/libcharon/kernel/kernel_handler.h b/src/libcharon/kernel/kernel_handler.h
index f1fa0bdfc..48ad6889c 100644
--- a/src/libcharon/kernel/kernel_handler.h
+++ b/src/libcharon/kernel/kernel_handler.h
@@ -15,7 +15,7 @@
/**
* @defgroup kernel_handler kernel_handler
- * @{ @ingroup kernel
+ * @{ @ingroup ckernel
*/
#ifndef KERNEL_HANDLER_H_
diff --git a/src/libhydra/Android.mk b/src/libhydra/Android.mk
index 40fa00dff..8439cf8ba 100644
--- a/src/libhydra/Android.mk
+++ b/src/libhydra/Android.mk
@@ -8,6 +8,10 @@ attributes/attributes.c attributes/attributes.h \
attributes/attribute_provider.h attributes/attribute_handler.h \
attributes/attribute_manager.c attributes/attribute_manager.h \
attributes/mem_pool.c attributes/mem_pool.h \
+kernel/kernel_interface.c kernel/kernel_interface.h \
+kernel/kernel_ipsec.c kernel/kernel_ipsec.h \
+kernel/kernel_net.h \
+kernel/kernel_listener.h \
processing/jobs/job.h \
processing/jobs/callback_job.c processing/jobs/callback_job.h \
processing/processor.c processing/processor.h \
diff --git a/src/libhydra/Makefile.am b/src/libhydra/Makefile.am
index 1de4aa201..62ec8f4a2 100644
--- a/src/libhydra/Makefile.am
+++ b/src/libhydra/Makefile.am
@@ -6,6 +6,10 @@ attributes/attributes.c attributes/attributes.h \
attributes/attribute_provider.h attributes/attribute_handler.h \
attributes/attribute_manager.c attributes/attribute_manager.h \
attributes/mem_pool.c attributes/mem_pool.h \
+kernel/kernel_interface.c kernel/kernel_interface.h \
+kernel/kernel_ipsec.c kernel/kernel_ipsec.h \
+kernel/kernel_net.h \
+kernel/kernel_listener.h \
processing/jobs/job.h \
processing/jobs/callback_job.c processing/jobs/callback_job.h \
processing/processor.c processing/processor.h \
diff --git a/src/libhydra/hydra.c b/src/libhydra/hydra.c
index 5418802e8..438ff656c 100644
--- a/src/libhydra/hydra.c
+++ b/src/libhydra/hydra.c
@@ -42,6 +42,7 @@ void libhydra_deinit()
{
private_hydra_t *this = (private_hydra_t*)hydra;
this->public.attributes->destroy(this->public.attributes);
+ this->public.kernel_interface->destroy(this->public.kernel_interface);
this->public.scheduler->destroy(this->public.scheduler);
this->public.processor->destroy(this->public.processor);
free((void*)this->public.daemon);
@@ -59,6 +60,7 @@ bool libhydra_init(const char *daemon)
INIT(this,
.public = {
.attributes = attribute_manager_create(),
+ .kernel_interface = kernel_interface_create(),
.processor = processor_create(),
.daemon = strdup(daemon ?: "libhydra"),
},
diff --git a/src/libhydra/hydra.h b/src/libhydra/hydra.h
index 2ae8bba76..29813fbfe 100644
--- a/src/libhydra/hydra.h
+++ b/src/libhydra/hydra.h
@@ -19,6 +19,9 @@
* @defgroup attributes attributes
* @ingroup libhydra
*
+ * @defgroup hkernel kernel
+ * @ingroup libhydra
+ *
* @defgroup hplugins plugins
* @ingroup libhydra
*
@@ -38,6 +41,7 @@
typedef struct hydra_t hydra_t;
#include <attributes/attribute_manager.h>
+#include <kernel/kernel_interface.h>
#include <processing/processor.h>
#include <processing/scheduler.h>
@@ -54,6 +58,11 @@ struct hydra_t {
attribute_manager_t *attributes;
/**
+ * kernel interface to communicate with kernel
+ */
+ kernel_interface_t *kernel_interface;
+
+ /**
* process jobs using a thread pool
*/
processor_t *processor;
diff --git a/src/libcharon/kernel/kernel_interface.c b/src/libhydra/kernel/kernel_interface.c
index cecaef728..77eaf68c4 100644
--- a/src/libcharon/kernel/kernel_interface.c
+++ b/src/libhydra/kernel/kernel_interface.c
@@ -17,7 +17,7 @@
#include "kernel_interface.h"
-#include <daemon.h>
+#include <debug.h>
#include <threading/mutex.h>
#include <utils/linked_list.h>
diff --git a/src/libcharon/kernel/kernel_interface.h b/src/libhydra/kernel/kernel_interface.h
index 06c526581..ec1f561cc 100644
--- a/src/libcharon/kernel/kernel_interface.h
+++ b/src/libhydra/kernel/kernel_interface.h
@@ -18,7 +18,7 @@
/**
* @defgroup kernel_interface kernel_interface
- * @{ @ingroup kernel
+ * @{ @ingroup hkernel
*/
#ifndef KERNEL_INTERFACE_H_
@@ -28,7 +28,6 @@ typedef struct kernel_interface_t kernel_interface_t;
#include <utils/host.h>
#include <crypto/prf_plus.h>
-#include <encoding/payloads/proposal_substructure.h>
#include <kernel/kernel_listener.h>
#include <kernel/kernel_ipsec.h>
diff --git a/src/libcharon/kernel/kernel_ipsec.c b/src/libhydra/kernel/kernel_ipsec.c
index 5b0335b16..5b0335b16 100644
--- a/src/libcharon/kernel/kernel_ipsec.c
+++ b/src/libhydra/kernel/kernel_ipsec.c
diff --git a/src/libcharon/kernel/kernel_ipsec.h b/src/libhydra/kernel/kernel_ipsec.h
index 340b7e91d..233dca305 100644
--- a/src/libcharon/kernel/kernel_ipsec.h
+++ b/src/libhydra/kernel/kernel_ipsec.h
@@ -18,7 +18,7 @@
/**
* @defgroup kernel_ipsec kernel_ipsec
- * @{ @ingroup kernel
+ * @{ @ingroup hkernel
*/
#ifndef KERNEL_IPSEC_H_
@@ -27,11 +27,12 @@
typedef enum ipsec_mode_t ipsec_mode_t;
typedef enum policy_dir_t policy_dir_t;
typedef struct kernel_ipsec_t kernel_ipsec_t;
+typedef struct lifetime_cfg_t lifetime_cfg_t;
+typedef struct mark_t mark_t;
#include <utils/host.h>
#include <crypto/prf_plus.h>
-#include <config/proposal.h>
-#include <config/child_cfg.h>
+#include <selectors/traffic_selector.h>
/**
* Mode of a CHILD_SA.
@@ -70,6 +71,32 @@ enum policy_dir_t {
extern enum_name_t *policy_dir_names;
/**
+ * A lifetime_cfg_t defines the lifetime limits of an SA.
+ *
+ * Set any of these values to 0 to ignore.
+ */
+struct lifetime_cfg_t {
+ struct {
+ /** Limit before the SA gets invalid. */
+ u_int64_t life;
+ /** Limit before the SA gets rekeyed. */
+ u_int64_t rekey;
+ /** The range of a random value subtracted from rekey. */
+ u_int64_t jitter;
+ } time, bytes, packets;
+};
+
+/**
+ * A mark_t defines an optional mark in an IPsec SA.
+ */
+struct mark_t {
+ /** Mark value */
+ u_int32_t value;
+ /** Mark mask */
+ u_int32_t mask;
+};
+
+/**
* Interface to the ipsec subsystem of the kernel.
*
* The kernel ipsec interface handles the communication with the kernel
diff --git a/src/libcharon/kernel/kernel_listener.h b/src/libhydra/kernel/kernel_listener.h
index 02e5b809e..6f2dbd23b 100644
--- a/src/libcharon/kernel/kernel_listener.h
+++ b/src/libhydra/kernel/kernel_listener.h
@@ -15,7 +15,7 @@
/**
* @defgroup kernel_listener kernel_listener
- * @{ @ingroup kernel
+ * @{ @ingroup hkernel
*/
#ifndef KERNEL_LISTENER_H_
diff --git a/src/libcharon/kernel/kernel_net.h b/src/libhydra/kernel/kernel_net.h
index 6625332f8..69e01f43f 100644
--- a/src/libcharon/kernel/kernel_net.h
+++ b/src/libhydra/kernel/kernel_net.h
@@ -16,7 +16,7 @@
/**
* @defgroup kernel_net kernel_net
- * @{ @ingroup kernel
+ * @{ @ingroup hkernel
*/
#ifndef KERNEL_NET_H_