aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/kernel_libipsec/kernel_libipsec_router.h
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2013-06-15 16:21:08 +0200
committerTobias Brunner <tobias@strongswan.org>2013-06-21 17:03:21 +0200
commitdcaf8d570c5c17cf1ec82d9d19ca53e1bfdff52b (patch)
tree285c3aefe0dcca0711bb8b2c4489555965f95402 /src/libcharon/plugins/kernel_libipsec/kernel_libipsec_router.h
parent7045defbffb2917279b3b8222b700fed4d7af925 (diff)
downloadstrongswan-dcaf8d570c5c17cf1ec82d9d19ca53e1bfdff52b.tar.bz2
strongswan-dcaf8d570c5c17cf1ec82d9d19ca53e1bfdff52b.tar.xz
kernel-libipsec: Router reads packets from multiple TUN devices
These devices are collected via kernel_listener_t interface.
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