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

This commit is contained in:
Tobias Brunner
2025-05-28 16:35:27 +02:00
parent 2082fa5dd2
commit d6eed3979b
6 changed files with 17 additions and 5 deletions
+3 -1
View File
@@ -25,7 +25,9 @@
void charon_esa_acquire(result_type *res, const sp_id_type sp_id) 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); DBG1(DBG_KNL, "ees: acquire received for reqid %u", sp_id);
charon->kernel->acquire(charon->kernel, sp_id, &data); charon->kernel->acquire(charon->kernel, sp_id, &data);
+2
View File
@@ -40,6 +40,8 @@ struct kernel_acquire_data_t {
traffic_selector_t *dst; traffic_selector_t *dst;
/** Optional security label of the triggering packet */ /** Optional security label of the triggering packet */
sec_label_t *label; 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 */ /** Optional sequence number associated with the acquire */
uint32_t seq; uint32_t seq;
}; };
@@ -238,7 +238,9 @@ static void expire(uint8_t protocol, uint32_t spi, host_t *dst, bool hard)
*/ */
static void acquire(uint32_t reqid) 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); charon->kernel->acquire(charon->kernel, reqid, &data);
} }
@@ -974,7 +974,9 @@ static void process_acquire(private_kernel_netlink_ipsec_t *this,
struct xfrm_user_acquire *acquire; struct xfrm_user_acquire *acquire;
struct rtattr *rta; struct rtattr *rta;
size_t rtasize; size_t rtasize;
kernel_acquire_data_t data = {}; kernel_acquire_data_t data = {
.cpu = CPU_ID_MAX,
};
chunk_t label = chunk_empty; chunk_t label = chunk_empty;
uint32_t reqid = 0; uint32_t reqid = 0;
uint8_t proto; uint8_t proto;
@@ -1324,7 +1324,9 @@ static void process_acquire(private_kernel_pfkey_ipsec_t *this,
struct sadb_msg* msg) struct sadb_msg* msg)
{ {
pfkey_msg_t response; pfkey_msg_t response;
kernel_acquire_data_t data = {}; kernel_acquire_data_t data = {
.cpu = CPU_ID_MAX,
};
uint32_t index, reqid = 0; uint32_t index, reqid = 0;
uint8_t mode = 0; uint8_t mode = 0;
policy_entry_t *policy; policy_entry_t *policy;
@@ -1637,7 +1637,9 @@ static u_int hash_trap(trap_t *trap)
static void acquire(private_kernel_wfp_ipsec_t *this, UINT64 filter_id, static void acquire(private_kernel_wfp_ipsec_t *this, UINT64 filter_id,
traffic_selector_t *src, traffic_selector_t *dst) 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; uint32_t reqid = 0;
trap_t *trap, key = { trap_t *trap, key = {
.filter_id = filter_id, .filter_id = filter_id,