Add load-tester traffic selector configuration options

This commit is contained in:
Martin Willi
2012-10-24 13:25:13 +02:00
parent 1efd6c6f2a
commit 0f3c5f8502
@@ -84,6 +84,26 @@ struct private_load_tester_config_t {
*/ */
char *responder_id; char *responder_id;
/**
* Traffic Selector on initiator side, as proposed from initiator
*/
char *initiator_tsi;
/**
* Traffic Selector on responder side, as proposed from initiator
*/
char *initiator_tsr;
/**
* Traffic Selector on initiator side, as narrowed by responder
*/
char *responder_tsi;
/**
* Traffic Selector on responder side, as narrowed by responder
*/
char *responder_tsr;
/** /**
* IKE_SA rekeying delay * IKE_SA rekeying delay
*/ */
@@ -246,6 +266,31 @@ static void generate_auth_cfg(private_load_tester_config_t *this, char *str,
enumerator->destroy(enumerator); enumerator->destroy(enumerator);
} }
/**
* Add a TS from a string to a child_cfg
*/
static void add_ts(char *string, child_cfg_t *cfg, bool local)
{
traffic_selector_t *ts;
if (string)
{
ts = traffic_selector_create_from_cidr(string, 0, 0);
if (!ts)
{
DBG1(DBG_CFG, "parsing TS string '%s' failed", string);
}
}
else
{
ts = traffic_selector_create_dynamic(0, 0, 65535);
}
if (ts)
{
cfg->add_traffic_selector(cfg, local, ts);
}
}
/** /**
* Generate a new initiator config, num = 0 for responder config * Generate a new initiator config, num = 0 for responder config
*/ */
@@ -254,7 +299,6 @@ static peer_cfg_t* generate_config(private_load_tester_config_t *this, uint num)
ike_cfg_t *ike_cfg; ike_cfg_t *ike_cfg;
child_cfg_t *child_cfg; child_cfg_t *child_cfg;
peer_cfg_t *peer_cfg; peer_cfg_t *peer_cfg;
traffic_selector_t *ts;
proposal_t *proposal; proposal_t *proposal;
lifetime_cfg_t lifetime = { lifetime_cfg_t lifetime = {
.time = { .time = {
@@ -310,10 +354,17 @@ static peer_cfg_t* generate_config(private_load_tester_config_t *this, uint num)
0, 0, NULL, NULL, 0); 0, 0, NULL, NULL, 0);
proposal = proposal_create_from_string(PROTO_ESP, "aes128-sha1"); proposal = proposal_create_from_string(PROTO_ESP, "aes128-sha1");
child_cfg->add_proposal(child_cfg, proposal); child_cfg->add_proposal(child_cfg, proposal);
ts = traffic_selector_create_dynamic(0, 0, 65535);
child_cfg->add_traffic_selector(child_cfg, TRUE, ts); if (num)
ts = traffic_selector_create_dynamic(0, 0, 65535); { /* initiator */
child_cfg->add_traffic_selector(child_cfg, FALSE, ts); add_ts(this->initiator_tsi, child_cfg, TRUE);
add_ts(this->initiator_tsr, child_cfg, FALSE);
}
else
{ /* responder */
add_ts(this->responder_tsr, child_cfg, TRUE);
add_ts(this->responder_tsi, child_cfg, FALSE);
}
peer_cfg->add_child_cfg(peer_cfg, child_cfg); peer_cfg->add_child_cfg(peer_cfg, child_cfg);
return peer_cfg; return peer_cfg;
} }
@@ -413,6 +464,17 @@ load_tester_config_t *load_tester_config_create()
this->responder_id = lib->settings->get_str(lib->settings, this->responder_id = lib->settings->get_str(lib->settings,
"%s.plugins.load-tester.responder_id", NULL, charon->name); "%s.plugins.load-tester.responder_id", NULL, charon->name);
this->initiator_tsi = lib->settings->get_str(lib->settings,
"%s.plugins.load-tester.initiator_tsi", NULL, charon->name);
this->responder_tsi =lib->settings->get_str(lib->settings,
"%s.plugins.load-tester.responder_tsi",
this->initiator_tsi, charon->name);
this->initiator_tsr = lib->settings->get_str(lib->settings,
"%s.plugins.load-tester.initiator_tsr", NULL, charon->name);
this->responder_tsr =lib->settings->get_str(lib->settings,
"%s.plugins.load-tester.responder_tsr",
this->initiator_tsr, charon->name);
this->port = lib->settings->get_int(lib->settings, this->port = lib->settings->get_int(lib->settings,
"%s.plugins.load-tester.dynamic_port", 0, charon->name); "%s.plugins.load-tester.dynamic_port", 0, charon->name);
this->version = lib->settings->get_int(lib->settings, this->version = lib->settings->get_int(lib->settings,