diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/Android.mk | 4 | ||||
-rw-r--r-- | src/libcharon/Makefile.am | 4 | ||||
-rw-r--r-- | src/libcharon/config/child_cfg.h | 36 | ||||
-rw-r--r-- | src/libcharon/daemon.c | 6 | ||||
-rw-r--r-- | src/libcharon/daemon.h | 8 | ||||
-rw-r--r-- | src/libcharon/kernel/kernel_handler.h | 2 | ||||
-rw-r--r-- | src/libhydra/Android.mk | 4 | ||||
-rw-r--r-- | src/libhydra/Makefile.am | 4 | ||||
-rw-r--r-- | src/libhydra/hydra.c | 2 | ||||
-rw-r--r-- | src/libhydra/hydra.h | 9 | ||||
-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_ |