Added a tfc ipsec.conf keyword to control Traffic Flow Confidentiality

This commit is contained in:
Martin Willi
2010-12-20 09:45:39 +01:00
parent 55df72e6d5
commit 6c302616f1
9 changed files with 32 additions and 2 deletions
+1
View File
@@ -239,6 +239,7 @@ static const token_info_t token_info[] =
{ ARG_MISC, 0, NULL /* KW_MARK */ },
{ ARG_MISC, 0, NULL /* KW_MARK_IN */ },
{ ARG_MISC, 0, NULL /* KW_MARK_OUT */ },
{ ARG_MISC, 0, NULL /* KW_TFC */ },
/* ca section keywords */
{ ARG_STR, offsetof(starter_ca_t, name), NULL },
+17
View File
@@ -705,6 +705,23 @@ static void load_conn(starter_conn_t *conn, kw_list_t *kw, starter_config_t *cfg
cfg->err++;
}
break;
case KW_TFC:
if (streq(kw->value, "%mtu"))
{
conn->tfc = -1;
}
else
{
char *endptr;
conn->tfc = strtoul(kw->value, &endptr, 10);
if (*endptr != '\0')
{
plog("# bad integer value: %s=%s", kw->entry->name, kw->value);
cfg->err++;
}
}
break;
case KW_KEYINGTRIES:
if (streq(kw->value, "%forever"))
{
+1
View File
@@ -125,6 +125,7 @@ struct starter_conn {
u_int32_t reqid;
mark_t mark_in;
mark_t mark_out;
u_int32_t tfc;
sa_family_t addr_family;
sa_family_t tunnel_addr_family;
bool install_policy;
+2 -1
View File
@@ -102,9 +102,10 @@ typedef enum {
KW_MARK,
KW_MARK_IN,
KW_MARK_OUT,
KW_TFC,
#define KW_CONN_FIRST KW_CONN_SETUP
#define KW_CONN_LAST KW_MARK_OUT
#define KW_CONN_LAST KW_TFC
/* ca section keywords */
KW_CA_NAME,
+1
View File
@@ -93,6 +93,7 @@ reqid, KW_REQID
mark, KW_MARK
mark_in, KW_MARK_IN
mark_out, KW_MARK_OUT
tfc, KW_TFC
cacert, KW_CACERT
ldaphost, KW_LDAPHOST
ldapbase, KW_LDAPBASE
+1
View File
@@ -266,6 +266,7 @@ int starter_stroke_add_conn(starter_config_t *cfg, starter_conn_t *conn)
msg.add_conn.mark_in.mask = conn->mark_in.mask;
msg.add_conn.mark_out.value = conn->mark_out.value;
msg.add_conn.mark_out.mask = conn->mark_out.mask;
msg.add_conn.tfc = conn->tfc;
starter_stroke_add_end(&msg, &msg.add_conn.me, &conn->left);
starter_stroke_add_end(&msg, &msg.add_conn.other, &conn->right);