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_alg = ENCR_UNDEFINED, int_alg = AUTH_UNDEFINED;
u_int16_t encr_size = 0, int_size = 0; u_int16_t encr_size = 0, int_size = 0;
bool esn = FALSE;
proposal->get_algorithm(proposal, ENCRYPTION_ALGORITHM, proposal->get_algorithm(proposal, ENCRYPTION_ALGORITHM,
&encr_alg, &encr_size); &encr_alg, &encr_size);
proposal->get_algorithm(proposal, INTEGRITY_ALGORITHM, proposal->get_algorithm(proposal, INTEGRITY_ALGORITHM,
&int_alg, &int_size); &int_alg, &int_size);
proposal->get_algorithm(proposal, EXTENDED_SEQUENCE_NUMBERS,
&esn, NULL);
if (encr_alg != ENCR_UNDEFINED) 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); fprintf(out, "_%u", int_size);
} }
} }
if (esn)
{
fprintf(out, "/ESN");
}
} }
now = time_monotonic(NULL); now = time_monotonic(NULL);
@@ -254,7 +254,8 @@ struct private_kernel_netlink_ipsec_t {
mutex_t *mutex; 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; hashtable_t *policies;
@@ -1414,10 +1415,13 @@ METHOD(kernel_ipsec_t, add_sa, status_t,
/* bmp_len contains number uf __u32's */ /* bmp_len contains number uf __u32's */
replay->bmp_len = this->replay_bmp; replay->bmp_len = this->replay_bmp;
replay->replay_window = this->replay_window; replay->replay_window = this->replay_window;
DBG2(DBG_KNL, " using replay window of %u bytes",
this->replay_window);
rthdr = XFRM_RTA_NEXT(rthdr); rthdr = XFRM_RTA_NEXT(rthdr);
if (esn) if (esn)
{ {
DBG2(DBG_KNL, " using extended sequence numbers (ESN)");
sa->flags |= XFRM_STATE_ESN; sa->flags |= XFRM_STATE_ESN;
} }
} }