(no commit message)
[strongswan.git] / Source / charon / threads / kernel_interface.h
index 3ade974..eeebbcd 100644 (file)
 #define KERNEL_INTERFACE_H_
 
 
+#include <network/host.h>
+#include <encoding/payloads/proposal_substructure.h>
 
 typedef struct kernel_interface_t kernel_interface_t;
 
 /**
- * @brief 
+ * @brief Interface to the kernel.
+ * 
+ * @b Constructors:
+ *  - kernel_interface_create()
  * 
  * @ingroup threads
  */
 struct kernel_interface_t {
 
        /**
+        * @brief Get a SPI from the kernel
+        * 
+        * @todo Fix spi range
+        */
+       status_t (*get_spi) (kernel_interface_t *this, host_t *src, host_t *dest, protocol_id_t protocol, bool tunnel_mode, u_int32_t *spi);
+       
+       /**
+        * @brief Create an SA.
+        * 
+        * @todo Fix reqid and replay_window params
+        * 
+        * @todo Cleanup method params
+        */
+       status_t (*add_sa)(kernel_interface_t *this,
+                               host_t *me,
+                               host_t *other,
+                               u_int32_t spi,
+                               int protocol,
+                               bool tunnel_mode,
+                               encryption_algorithm_t enc_alg,
+                               chunk_t encryption_key,
+                               integrity_algorithm_t int_alg,
+                               chunk_t integrity_key,
+                               bool replace);
+       
+       /**
         * @brief Destroys a kernel_interface object.
         *
-        * Stopps the prime thread and destroys the pool.
-        *
         * @param kernel_interface_t    calling object
         */
        void (*destroy) (kernel_interface_t *kernel_interface);
 };
 
 /**
- * @brief 
+ * @brief Creates an object of type kernel_interface_t.
  * 
  * @ingroup threads
  */