kernel-interface: Optionally pass CPU ID for which an acquire was triggered

This commit is contained in:
Tobias Brunner 2022-09-26 16:47:46 +02:00
parent 2082fa5dd2
commit d6eed3979b
6 changed files with 17 additions and 5 deletions

View File

@ -25,7 +25,9 @@
void charon_esa_acquire(result_type *res, const sp_id_type sp_id)
{
kernel_acquire_data_t data = {};
kernel_acquire_data_t data = {
.cpu = CPU_ID_MAX,
};
DBG1(DBG_KNL, "ees: acquire received for reqid %u", sp_id);
charon->kernel->acquire(charon->kernel, sp_id, &data);

View File

@ -40,6 +40,8 @@ struct kernel_acquire_data_t {
traffic_selector_t *dst;
/** Optional security label of the triggering packet */
sec_label_t *label;
/** Optional CPU ID of the triggering packet, CPU_ID_MAX if none */
uint32_t cpu;
/** Optional sequence number associated with the acquire */
uint32_t seq;
};

View File

@ -238,7 +238,9 @@ static void expire(uint8_t protocol, uint32_t spi, host_t *dst, bool hard)
*/
static void acquire(uint32_t reqid)
{
kernel_acquire_data_t data = {};
kernel_acquire_data_t data = {
.cpu = CPU_ID_MAX,
};
charon->kernel->acquire(charon->kernel, reqid, &data);
}

View File

@ -974,7 +974,9 @@ static void process_acquire(private_kernel_netlink_ipsec_t *this,
struct xfrm_user_acquire *acquire;
struct rtattr *rta;
size_t rtasize;
kernel_acquire_data_t data = {};
kernel_acquire_data_t data = {
.cpu = CPU_ID_MAX,
};
chunk_t label = chunk_empty;
uint32_t reqid = 0;
uint8_t proto;

View File

@ -1324,7 +1324,9 @@ static void process_acquire(private_kernel_pfkey_ipsec_t *this,
struct sadb_msg* msg)
{
pfkey_msg_t response;
kernel_acquire_data_t data = {};
kernel_acquire_data_t data = {
.cpu = CPU_ID_MAX,
};
uint32_t index, reqid = 0;
uint8_t mode = 0;
policy_entry_t *policy;

View File

@ -1637,7 +1637,9 @@ static u_int hash_trap(trap_t *trap)
static void acquire(private_kernel_wfp_ipsec_t *this, UINT64 filter_id,
traffic_selector_t *src, traffic_selector_t *dst)
{
kernel_acquire_data_t data = {};
kernel_acquire_data_t data = {
.cpu = CPU_ID_MAX,
};
uint32_t reqid = 0;
trap_t *trap, key = {
.filter_id = filter_id,