Handling of new lifetime limits added to stroke.
This commit is contained in:
@@ -92,6 +92,16 @@ struct lifetime_cfg_t {
|
|||||||
u_int64_t jitter_packets;
|
u_int64_t jitter_packets;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper macro to easily set all three values of a specified limit (time,
|
||||||
|
* bytes, packets).
|
||||||
|
*/
|
||||||
|
#define LIFETIME_CFG_SET(l, limit, life, rekey, jitter) do { \
|
||||||
|
(l)->life_##limit = (life); \
|
||||||
|
(l)->rekey_##limit = (rekey); \
|
||||||
|
(l)->jitter_##limit = (jitter); \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new lifetime_cfg_t object.
|
* Create a new lifetime_cfg_t object.
|
||||||
*/
|
*/
|
||||||
@@ -108,9 +118,7 @@ static inline lifetime_cfg_t* lifetime_cfg_create_time(u_int64_t life,
|
|||||||
u_int64_t rekey, u_int64_t jitter)
|
u_int64_t rekey, u_int64_t jitter)
|
||||||
{
|
{
|
||||||
lifetime_cfg_t *this = lifetime_cfg_create();
|
lifetime_cfg_t *this = lifetime_cfg_create();
|
||||||
this->life_time = life;
|
LIFETIME_CFG_SET(this, time, life, rekey, jitter);
|
||||||
this->rekey_time = rekey;
|
|
||||||
this->jitter_time = jitter;
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -772,6 +772,14 @@ static child_cfg_t *build_child_cfg(private_stroke_config_t *this,
|
|||||||
msg->add_conn.rekey.ipsec_lifetime,
|
msg->add_conn.rekey.ipsec_lifetime,
|
||||||
msg->add_conn.rekey.ipsec_lifetime - msg->add_conn.rekey.margin,
|
msg->add_conn.rekey.ipsec_lifetime - msg->add_conn.rekey.margin,
|
||||||
msg->add_conn.rekey.margin * msg->add_conn.rekey.fuzz / 100);
|
msg->add_conn.rekey.margin * msg->add_conn.rekey.fuzz / 100);
|
||||||
|
LIFETIME_CFG_SET(lifetime, bytes,
|
||||||
|
msg->add_conn.rekey.life_bytes,
|
||||||
|
msg->add_conn.rekey.life_bytes - msg->add_conn.rekey.margin_bytes,
|
||||||
|
msg->add_conn.rekey.margin_bytes * msg->add_conn.rekey.fuzz / 100);
|
||||||
|
LIFETIME_CFG_SET(lifetime, packets,
|
||||||
|
msg->add_conn.rekey.life_packets,
|
||||||
|
msg->add_conn.rekey.life_packets - msg->add_conn.rekey.margin_packets,
|
||||||
|
msg->add_conn.rekey.margin_packets * msg->add_conn.rekey.fuzz / 100);
|
||||||
|
|
||||||
child_cfg = child_cfg_create(
|
child_cfg = child_cfg_create(
|
||||||
msg->add_conn.name, lifetime,
|
msg->add_conn.name, lifetime,
|
||||||
|
|||||||
@@ -279,6 +279,10 @@ int starter_stroke_add_conn(starter_config_t *cfg, starter_conn_t *conn)
|
|||||||
msg.add_conn.rekey.ipsec_lifetime = conn->sa_ipsec_life_seconds;
|
msg.add_conn.rekey.ipsec_lifetime = conn->sa_ipsec_life_seconds;
|
||||||
msg.add_conn.rekey.ike_lifetime = conn->sa_ike_life_seconds;
|
msg.add_conn.rekey.ike_lifetime = conn->sa_ike_life_seconds;
|
||||||
msg.add_conn.rekey.margin = conn->sa_rekey_margin;
|
msg.add_conn.rekey.margin = conn->sa_rekey_margin;
|
||||||
|
msg.add_conn.rekey.life_bytes = conn->sa_ipsec_life_bytes;
|
||||||
|
msg.add_conn.rekey.margin_bytes = conn->sa_ipsec_margin_bytes;
|
||||||
|
msg.add_conn.rekey.life_packets = conn->sa_ipsec_life_packets;
|
||||||
|
msg.add_conn.rekey.margin_packets = conn->sa_ipsec_margin_packets;
|
||||||
msg.add_conn.rekey.tries = conn->sa_keying_tries;
|
msg.add_conn.rekey.tries = conn->sa_keying_tries;
|
||||||
msg.add_conn.rekey.fuzz = conn->sa_rekey_fuzz;
|
msg.add_conn.rekey.fuzz = conn->sa_rekey_fuzz;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -237,6 +237,10 @@ struct stroke_msg_t {
|
|||||||
time_t ipsec_lifetime;
|
time_t ipsec_lifetime;
|
||||||
time_t ike_lifetime;
|
time_t ike_lifetime;
|
||||||
time_t margin;
|
time_t margin;
|
||||||
|
u_int64_t life_bytes;
|
||||||
|
u_int64_t margin_bytes;
|
||||||
|
u_int64_t life_packets;
|
||||||
|
u_int64_t margin_packets;
|
||||||
unsigned long tries;
|
unsigned long tries;
|
||||||
unsigned long fuzz;
|
unsigned long fuzz;
|
||||||
} rekey;
|
} rekey;
|
||||||
|
|||||||
Reference in New Issue
Block a user