added log and status output for ESN

This commit is contained in:
Andreas Steffen
2011-07-16 11:09:38 +02:00
parent 152d7b373d
commit 6101ee9b06
2 changed files with 12 additions and 1 deletions
@@ -222,11 +222,14 @@ static void log_child_sa(FILE *out, child_sa_t *child_sa, bool all)
{
u_int16_t encr_alg = ENCR_UNDEFINED, int_alg = AUTH_UNDEFINED;
u_int16_t encr_size = 0, int_size = 0;
bool esn = FALSE;
proposal->get_algorithm(proposal, ENCRYPTION_ALGORITHM,
&encr_alg, &encr_size);
proposal->get_algorithm(proposal, INTEGRITY_ALGORITHM,
&int_alg, &int_size);
proposal->get_algorithm(proposal, EXTENDED_SEQUENCE_NUMBERS,
&esn, NULL);
if (encr_alg != ENCR_UNDEFINED)
{
@@ -244,6 +247,10 @@ static void log_child_sa(FILE *out, child_sa_t *child_sa, bool all)
fprintf(out, "_%u", int_size);
}
}
if (esn)
{
fprintf(out, "/ESN");
}
}
now = time_monotonic(NULL);
@@ -254,7 +254,8 @@ struct private_kernel_netlink_ipsec_t {
mutex_t *mutex;
/**
* Hash table of installed policies (policy_entry_t)
* Hash table of installed policies (policy_entry_t) DBG2(DBG_KNL, " using extended sequence numbers (ESN)");
*/
hashtable_t *policies;
@@ -1414,10 +1415,13 @@ METHOD(kernel_ipsec_t, add_sa, status_t,
/* bmp_len contains number uf __u32's */
replay->bmp_len = this->replay_bmp;
replay->replay_window = this->replay_window;
DBG2(DBG_KNL, " using replay window of %u bytes",
this->replay_window);
rthdr = XFRM_RTA_NEXT(rthdr);
if (esn)
{
DBG2(DBG_KNL, " using extended sequence numbers (ESN)");
sa->flags |= XFRM_STATE_ESN;
}
}