Define a special XFRM mark_t.value that dynamically uses the CHILD_SA reqid

This commit is contained in:
Martin Willi
2012-03-22 09:05:56 +01:00
parent 4f3cf61dfd
commit 3de54af7ec
2 changed files with 14 additions and 0 deletions
+9
View File
@@ -1079,6 +1079,15 @@ child_sa_t * child_sa_create(host_t *me, host_t* other,
this->reqid = rekey ? rekey : ++reqid;
}
if (this->mark_in.value == MARK_REQID)
{
this->mark_in.value = this->reqid;
}
if (this->mark_out.value == MARK_REQID)
{
this->mark_out.value = this->reqid;
}
/* MIPv6 proxy transport mode sets SA endpoints to TS hosts */
if (config->get_mode(config) == MODE_TRANSPORT &&
config->use_proxy_mode(config))
+5
View File
@@ -171,6 +171,11 @@ struct mark_t {
u_int32_t mask;
};
/**
* Special mark value that uses the reqid of the CHILD_SA as mark
*/
#define MARK_REQID (0xFFFFFFFF)
/**
* Interface to the ipsec subsystem of the kernel.
*