aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/sa/transactions/create_child_sa.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/charon/sa/transactions/create_child_sa.h')
-rw-r--r--src/charon/sa/transactions/create_child_sa.h36
1 files changed, 32 insertions, 4 deletions
diff --git a/src/charon/sa/transactions/create_child_sa.h b/src/charon/sa/transactions/create_child_sa.h
index b2bae7728..d3c05a620 100644
--- a/src/charon/sa/transactions/create_child_sa.h
+++ b/src/charon/sa/transactions/create_child_sa.h
@@ -20,9 +20,8 @@
* for more details.
*/
-
-#ifndef CREATE_CHILD_SA_
-#define CREATE_CHILD_SA_
+#ifndef CREATE_CHILD_SA_H_
+#define CREATE_CHILD_SA_H_
#include <sa/ike_sa.h>
#include <sa/child_sa.h>
@@ -37,6 +36,23 @@ typedef struct create_child_sa_t create_child_sa_t;
* Rekeying of an CHILD_SA works the same way as creating a new one,
* but includes an additional REKEY_SA notify and deletes the old
* one (in a separate transaction).
+ *
+ * ¦__________ _________¦
+ * ¦ Cyq \/ Czq ¦
+ * ¦__________/\_________¦
+ * detect ¦__________ _________¦ detect
+ * ¦ Czp \/ Czp ¦
+ * compare nonces, won ¦__________/\_________¦ compare nonces, lost
+ * ¦ ¦
+ * delete old ¦__________ ¦
+ * ¦ Dxq \__________¦
+ * ¦ __________¦
+ * ¦__________/ Dxp ¦
+ * ¦ __________¦ delete created
+ * ¦__________/ Dzq ¦
+ * ¦__________ ¦
+ * ¦ Dzp \__________¦
+ *
*
* @b Constructors:
* - create_child_sa_create()
@@ -61,6 +77,18 @@ struct create_child_sa_t {
* @param child_sa CHILD_SA to rekey
*/
void (*rekeys_child) (create_child_sa_t* this, child_sa_t *child_sa);
+
+ /**
+ * @brief Cancel a rekeying request.
+ *
+ * Cancelling a rekeying request will set a flag in the transaction. When
+ * the response for the transaction is received, the created CHILD_SA
+ * gets deleted afterwards.
+ *
+ * @param this calling object
+ * @param child_sa CHILD_SA to rekey
+ */
+ void (*cancel) (create_child_sa_t* this);
};
/**
@@ -74,4 +102,4 @@ struct create_child_sa_t {
*/
create_child_sa_t *create_child_sa_create(ike_sa_t *ike_sa, u_int32_t message_id);
-#endif /* CREATE_CHILD_SA_ */
+#endif /* CREATE_CHILD_SA_H_ */