Moved kernel interface to libhydra.
This commit is contained in:
@@ -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 \
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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>
|
||||
@@ -67,32 +65,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.
|
||||
*
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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>
|
||||
@@ -221,11 +220,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
|
||||
*/
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
/**
|
||||
* @defgroup kernel_handler kernel_handler
|
||||
* @{ @ingroup kernel
|
||||
* @{ @ingroup ckernel
|
||||
*/
|
||||
|
||||
#ifndef KERNEL_HANDLER_H_
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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"),
|
||||
},
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -53,6 +57,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
|
||||
*/
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
#include "kernel_interface.h"
|
||||
|
||||
#include <daemon.h>
|
||||
#include <debug.h>
|
||||
#include <threading/mutex.h>
|
||||
#include <utils/linked_list.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>
|
||||
@@ -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.
|
||||
@@ -69,6 +70,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.
|
||||
*
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
/**
|
||||
* @defgroup kernel_listener kernel_listener
|
||||
* @{ @ingroup kernel
|
||||
* @{ @ingroup hkernel
|
||||
*/
|
||||
|
||||
#ifndef KERNEL_LISTENER_H_
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
/**
|
||||
* @defgroup kernel_net kernel_net
|
||||
* @{ @ingroup kernel
|
||||
* @{ @ingroup hkernel
|
||||
*/
|
||||
|
||||
#ifndef KERNEL_NET_H_
|
||||
Reference in New Issue
Block a user