Add reqid field and getter function to child_cfg_t.
This commit is contained in:
committed by
Martin Willi
parent
1f83541d7b
commit
277fcf9f86
@@ -111,6 +111,11 @@ struct private_child_cfg_t {
|
|||||||
*/
|
*/
|
||||||
u_int32_t inactivity;
|
u_int32_t inactivity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reqid to install CHIL_SA with
|
||||||
|
*/
|
||||||
|
u_int32_t reqid;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* set up IPsec transport SA in MIPv6 proxy mode
|
* set up IPsec transport SA in MIPv6 proxy mode
|
||||||
*/
|
*/
|
||||||
@@ -445,6 +450,14 @@ static u_int32_t get_inactivity(private_child_cfg_t *this)
|
|||||||
return this->inactivity;
|
return this->inactivity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implementation of child_cfg_t.get_reqid.
|
||||||
|
*/
|
||||||
|
static u_int32_t get_reqid(private_child_cfg_t *this)
|
||||||
|
{
|
||||||
|
return this->reqid;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of child_cfg_t.set_mipv6_options.
|
* Implementation of child_cfg_t.set_mipv6_options.
|
||||||
*/
|
*/
|
||||||
@@ -506,7 +519,7 @@ child_cfg_t *child_cfg_create(char *name, lifetime_cfg_t *lifetime,
|
|||||||
char *updown, bool hostaccess,
|
char *updown, bool hostaccess,
|
||||||
ipsec_mode_t mode, action_t dpd_action,
|
ipsec_mode_t mode, action_t dpd_action,
|
||||||
action_t close_action, bool ipcomp,
|
action_t close_action, bool ipcomp,
|
||||||
u_int32_t inactivity)
|
u_int32_t inactivity, u_int32_t reqid)
|
||||||
{
|
{
|
||||||
private_child_cfg_t *this = malloc_thing(private_child_cfg_t);
|
private_child_cfg_t *this = malloc_thing(private_child_cfg_t);
|
||||||
|
|
||||||
@@ -526,6 +539,7 @@ child_cfg_t *child_cfg_create(char *name, lifetime_cfg_t *lifetime,
|
|||||||
this->public.set_mipv6_options = (void (*) (child_cfg_t*,bool,bool))set_mipv6_options;
|
this->public.set_mipv6_options = (void (*) (child_cfg_t*,bool,bool))set_mipv6_options;
|
||||||
this->public.use_ipcomp = (bool (*) (child_cfg_t *))use_ipcomp;
|
this->public.use_ipcomp = (bool (*) (child_cfg_t *))use_ipcomp;
|
||||||
this->public.get_inactivity = (u_int32_t (*) (child_cfg_t *))get_inactivity;
|
this->public.get_inactivity = (u_int32_t (*) (child_cfg_t *))get_inactivity;
|
||||||
|
this->public.get_reqid = (u_int32_t (*) (child_cfg_t *))get_reqid;
|
||||||
this->public.use_proxy_mode = (bool (*) (child_cfg_t *))use_proxy_mode;
|
this->public.use_proxy_mode = (bool (*) (child_cfg_t *))use_proxy_mode;
|
||||||
this->public.install_policy = (bool (*) (child_cfg_t *))install_policy;
|
this->public.install_policy = (bool (*) (child_cfg_t *))install_policy;
|
||||||
this->public.get_ref = (child_cfg_t* (*) (child_cfg_t*))get_ref;
|
this->public.get_ref = (child_cfg_t* (*) (child_cfg_t*))get_ref;
|
||||||
@@ -539,6 +553,7 @@ child_cfg_t *child_cfg_create(char *name, lifetime_cfg_t *lifetime,
|
|||||||
this->close_action = close_action;
|
this->close_action = close_action;
|
||||||
this->use_ipcomp = ipcomp;
|
this->use_ipcomp = ipcomp;
|
||||||
this->inactivity = inactivity;
|
this->inactivity = inactivity;
|
||||||
|
this->reqid = reqid;
|
||||||
this->proxy_mode = FALSE;
|
this->proxy_mode = FALSE;
|
||||||
this->install_policy = TRUE;
|
this->install_policy = TRUE;
|
||||||
this->refcount = 1;
|
this->refcount = 1;
|
||||||
|
|||||||
@@ -238,6 +238,13 @@ struct child_cfg_t {
|
|||||||
*/
|
*/
|
||||||
u_int32_t (*get_inactivity)(child_cfg_t *this);
|
u_int32_t (*get_inactivity)(child_cfg_t *this);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specific reqid to use for CHILD_SA
|
||||||
|
*
|
||||||
|
* @return reqid
|
||||||
|
*/
|
||||||
|
u_int32_t (*get_reqid)(child_cfg_t *this);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets two options needed for Mobile IPv6 interoperability
|
* Sets two options needed for Mobile IPv6 interoperability
|
||||||
*
|
*
|
||||||
@@ -299,12 +306,13 @@ struct child_cfg_t {
|
|||||||
* @param close_action close action
|
* @param close_action close action
|
||||||
* @param ipcomp use IPComp, if peer supports it
|
* @param ipcomp use IPComp, if peer supports it
|
||||||
* @param inactivity inactivity timeout in s before closing a CHILD_SA
|
* @param inactivity inactivity timeout in s before closing a CHILD_SA
|
||||||
* @return child_cfg_t object
|
* @param reqid specific reqid to use for CHILD_SA, 0 for auto assign
|
||||||
|
* @return child_cfg_t object
|
||||||
*/
|
*/
|
||||||
child_cfg_t *child_cfg_create(char *name, lifetime_cfg_t *lifetime,
|
child_cfg_t *child_cfg_create(char *name, lifetime_cfg_t *lifetime,
|
||||||
char *updown, bool hostaccess,
|
char *updown, bool hostaccess,
|
||||||
ipsec_mode_t mode, action_t dpd_action,
|
ipsec_mode_t mode, action_t dpd_action,
|
||||||
action_t close_action, bool ipcomp,
|
action_t close_action, bool ipcomp,
|
||||||
u_int32_t inactivity);
|
u_int32_t inactivity, u_int32_t reqid);
|
||||||
|
|
||||||
#endif /** CHILD_CFG_H_ @}*/
|
#endif /** CHILD_CFG_H_ @}*/
|
||||||
|
|||||||
@@ -234,7 +234,7 @@ static void setup_tunnel(private_ha_tunnel_t *this,
|
|||||||
peer_cfg->add_auth_cfg(peer_cfg, auth_cfg, FALSE);
|
peer_cfg->add_auth_cfg(peer_cfg, auth_cfg, FALSE);
|
||||||
|
|
||||||
child_cfg = child_cfg_create("ha", &lifetime, NULL, TRUE,
|
child_cfg = child_cfg_create("ha", &lifetime, NULL, TRUE,
|
||||||
MODE_TRANSPORT, ACTION_NONE, ACTION_NONE, FALSE, 0);
|
MODE_TRANSPORT, ACTION_NONE, ACTION_NONE, FALSE, 0, 0);
|
||||||
ts = traffic_selector_create_dynamic(IPPROTO_UDP, HA_PORT, HA_PORT);
|
ts = traffic_selector_create_dynamic(IPPROTO_UDP, HA_PORT, HA_PORT);
|
||||||
child_cfg->add_traffic_selector(child_cfg, TRUE, ts);
|
child_cfg->add_traffic_selector(child_cfg, TRUE, ts);
|
||||||
ts = traffic_selector_create_dynamic(IPPROTO_ICMP, 0, 65535);
|
ts = traffic_selector_create_dynamic(IPPROTO_ICMP, 0, 65535);
|
||||||
|
|||||||
@@ -224,7 +224,7 @@ static peer_cfg_t* generate_config(private_load_tester_config_t *this, uint num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
child_cfg = child_cfg_create("load-test", &lifetime, NULL, TRUE,
|
child_cfg = child_cfg_create("load-test", &lifetime, NULL, TRUE,
|
||||||
MODE_TUNNEL, ACTION_NONE, ACTION_NONE, FALSE, 0);
|
MODE_TUNNEL, ACTION_NONE, ACTION_NONE, FALSE, 0, 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);
|
ts = traffic_selector_create_dynamic(0, 0, 65535);
|
||||||
|
|||||||
@@ -182,7 +182,7 @@ static peer_cfg_t *get_peer_cfg_by_name(private_medcli_config_t *this, char *nam
|
|||||||
peer_cfg->add_auth_cfg(peer_cfg, auth, FALSE);
|
peer_cfg->add_auth_cfg(peer_cfg, auth, FALSE);
|
||||||
|
|
||||||
child_cfg = child_cfg_create(name, &lifetime, NULL, TRUE,
|
child_cfg = child_cfg_create(name, &lifetime, NULL, TRUE,
|
||||||
MODE_TUNNEL, ACTION_NONE, ACTION_NONE, FALSE, 0);
|
MODE_TUNNEL, ACTION_NONE, ACTION_NONE, FALSE, 0, 0);
|
||||||
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
||||||
child_cfg->add_traffic_selector(child_cfg, TRUE, ts_from_string(local_net));
|
child_cfg->add_traffic_selector(child_cfg, TRUE, ts_from_string(local_net));
|
||||||
child_cfg->add_traffic_selector(child_cfg, FALSE, ts_from_string(remote_net));
|
child_cfg->add_traffic_selector(child_cfg, FALSE, ts_from_string(remote_net));
|
||||||
@@ -260,7 +260,7 @@ static bool peer_enumerator_enumerate(peer_enumerator_t *this, peer_cfg_t **cfg)
|
|||||||
this->current->add_auth_cfg(this->current, auth, FALSE);
|
this->current->add_auth_cfg(this->current, auth, FALSE);
|
||||||
|
|
||||||
child_cfg = child_cfg_create(name, &lifetime, NULL, TRUE, MODE_TUNNEL,
|
child_cfg = child_cfg_create(name, &lifetime, NULL, TRUE, MODE_TUNNEL,
|
||||||
ACTION_NONE, ACTION_NONE, FALSE, 0);
|
ACTION_NONE, ACTION_NONE, FALSE, 0, 0);
|
||||||
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
||||||
child_cfg->add_traffic_selector(child_cfg, TRUE, ts_from_string(local_net));
|
child_cfg->add_traffic_selector(child_cfg, TRUE, ts_from_string(local_net));
|
||||||
child_cfg->add_traffic_selector(child_cfg, FALSE, ts_from_string(remote_net));
|
child_cfg->add_traffic_selector(child_cfg, FALSE, ts_from_string(remote_net));
|
||||||
|
|||||||
@@ -444,7 +444,7 @@ static gboolean connect_(NMVPNPlugin *plugin, NMConnection *connection,
|
|||||||
|
|
||||||
child_cfg = child_cfg_create(priv->name, &lifetime,
|
child_cfg = child_cfg_create(priv->name, &lifetime,
|
||||||
NULL, TRUE, MODE_TUNNEL, /* updown, hostaccess */
|
NULL, TRUE, MODE_TUNNEL, /* updown, hostaccess */
|
||||||
ACTION_NONE, ACTION_NONE, ipcomp, 0);
|
ACTION_NONE, ACTION_NONE, ipcomp, 0, 0);
|
||||||
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
||||||
ts = traffic_selector_create_dynamic(0, 0, 65535);
|
ts = traffic_selector_create_dynamic(0, 0, 65535);
|
||||||
child_cfg->add_traffic_selector(child_cfg, TRUE, ts);
|
child_cfg->add_traffic_selector(child_cfg, TRUE, ts);
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ static child_cfg_t *build_child_cfg(private_sql_config_t *this, enumerator_t *e)
|
|||||||
.time = { .life = lifetime, .rekey = rekeytime, .jitter = jitter }
|
.time = { .life = lifetime, .rekey = rekeytime, .jitter = jitter }
|
||||||
};
|
};
|
||||||
child_cfg = child_cfg_create(name, &lft, updown, hostaccess, mode,
|
child_cfg = child_cfg_create(name, &lft, updown, hostaccess, mode,
|
||||||
dpd, close, ipcomp, 0);
|
dpd, close, ipcomp, 0, 0);
|
||||||
/* TODO: read proposal from db */
|
/* TODO: read proposal from db */
|
||||||
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
||||||
add_traffic_selectors(this, child_cfg, id);
|
add_traffic_selectors(this, child_cfg, id);
|
||||||
|
|||||||
@@ -787,7 +787,7 @@ static child_cfg_t *build_child_cfg(private_stroke_config_t *this,
|
|||||||
msg->add_conn.name, &lifetime,
|
msg->add_conn.name, &lifetime,
|
||||||
msg->add_conn.me.updown, msg->add_conn.me.hostaccess,
|
msg->add_conn.me.updown, msg->add_conn.me.hostaccess,
|
||||||
msg->add_conn.mode, dpd, dpd, msg->add_conn.ipcomp,
|
msg->add_conn.mode, dpd, dpd, msg->add_conn.ipcomp,
|
||||||
msg->add_conn.inactivity);
|
msg->add_conn.inactivity, msg->add_conn.reqid);
|
||||||
child_cfg->set_mipv6_options(child_cfg, msg->add_conn.proxy_mode,
|
child_cfg->set_mipv6_options(child_cfg, msg->add_conn.proxy_mode,
|
||||||
msg->add_conn.install_policy);
|
msg->add_conn.install_policy);
|
||||||
add_ts(this, &msg->add_conn.me, child_cfg, TRUE);
|
add_ts(this, &msg->add_conn.me, child_cfg, TRUE);
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ static bool peer_enumerator_enumerate(peer_enumerator_t *this, peer_cfg_t **cfg)
|
|||||||
this->peer_cfg->add_auth_cfg(this->peer_cfg, auth, FALSE);
|
this->peer_cfg->add_auth_cfg(this->peer_cfg, auth, FALSE);
|
||||||
|
|
||||||
child_cfg = child_cfg_create(name, &lifetime, NULL, TRUE, MODE_TUNNEL,
|
child_cfg = child_cfg_create(name, &lifetime, NULL, TRUE, MODE_TUNNEL,
|
||||||
ACTION_NONE, ACTION_NONE, FALSE, 0);
|
ACTION_NONE, ACTION_NONE, FALSE, 0, 0);
|
||||||
child_cfg->add_proposal(child_cfg, create_proposal(esp_proposal, PROTO_ESP));
|
child_cfg->add_proposal(child_cfg, create_proposal(esp_proposal, PROTO_ESP));
|
||||||
child_cfg->add_traffic_selector(child_cfg, TRUE, create_ts(local_net));
|
child_cfg->add_traffic_selector(child_cfg, TRUE, create_ts(local_net));
|
||||||
child_cfg->add_traffic_selector(child_cfg, FALSE, create_ts(remote_net));
|
child_cfg->add_traffic_selector(child_cfg, FALSE, create_ts(remote_net));
|
||||||
|
|||||||
Reference in New Issue
Block a user