aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_router.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcharon/plugins/kernel_libipsec/kernel_libipsec_router.h')
-rw-r--r--src/libcharon/plugins/kernel_libipsec/kernel_libipsec_router.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_router.h b/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_router.h
index a7ef27c0a..7b2f3c6c5 100644
--- a/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_router.h
+++ b/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_router.h
@@ -21,6 +21,8 @@
#ifndef KERNEL_LIBIPSEC_ROUTER_H_
#define KERNEL_LIBIPSEC_ROUTER_H_
+#include <kernel/kernel_listener.h>
+
typedef struct kernel_libipsec_router_t kernel_libipsec_router_t;
/**
@@ -30,12 +32,30 @@ typedef struct kernel_libipsec_router_t kernel_libipsec_router_t;
struct kernel_libipsec_router_t {
/**
+ * Implements kernel_listener_t interface
+ */
+ kernel_listener_t listener;
+
+ /**
+ * Get the name of the TUN device to be used with the given virtual IP.
+ *
+ * @param vip virtual IP
+ * @return allocated name
+ */
+ char *(*get_tun_name)(kernel_libipsec_router_t *this, host_t *vip);
+
+ /**
* Destroy the given instance
*/
void (*destroy)(kernel_libipsec_router_t *this);
};
/**
+ * Single instance of this class, if created
+ */
+extern kernel_libipsec_router_t *router;
+
+/**
* Create a kernel_libipsec_router_t instance.
*
* @return kernel_libipsec_router_t instance