kernel-netlink: Add support to set CPU ID on SA

This commit is contained in:
Tobias Brunner 2021-05-11 16:07:39 +02:00
parent 12395cedf3
commit 53be94d06c
3 changed files with 13 additions and 0 deletions

View File

@ -95,6 +95,8 @@ struct kernel_ipsec_add_sa_t {
uint16_t ipcomp;
/** CPI for IPComp */
uint16_t cpi;
/** Optional CPU ID, must be CPU_ID_MAX if not used */
uint32_t cpu;
/** TRUE to enable UDP encapsulation for NAT traversal */
bool encap;
/** HW offload mode */

View File

@ -1725,6 +1725,7 @@ METHOD(kernel_ipsec_t, add_sa, status_t,
.int_alg = AUTH_UNDEFINED,
.tfc = data->tfc,
.ipcomp = data->ipcomp,
.cpu = data->cpu,
.initiator = data->initiator,
.inbound = data->inbound,
.update = data->update,
@ -2084,6 +2085,15 @@ METHOD(kernel_ipsec_t, add_sa, status_t,
goto failed;
}
if (data->cpu != CPU_ID_MAX)
{
if (!add_uint32(hdr, sizeof(request), XFRMA_SA_PCPU, data->cpu))
{
goto failed;
}
DBG2(DBG_KNL, " using CPU ID: %u", data->cpu);
}
if (id->proto != IPPROTO_COMP)
{
/* we don't need a replay window for outbound SAs, however, older

View File

@ -1054,6 +1054,7 @@ static status_t install_internal(private_child_sa_t *this, chunk_t encr,
.ipcomp = this->ipcomp,
.cpi = cpi,
.encap = this->encap,
.cpu = CPU_ID_MAX,
.hw_offload = this->config->get_hw_offload(this->config),
.mark = this->config->get_set_mark(this->config, inbound),
.esn = esn,