]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
kernel-interface: Add members for optional acquire sequence number
authorTobias Brunner <tobias@strongswan.org>
Wed, 19 Mar 2025 12:27:20 +0000 (13:27 +0100)
committerTobias Brunner <tobias@strongswan.org>
Wed, 28 May 2025 08:01:19 +0000 (10:01 +0200)
src/libcharon/kernel/kernel_handler.c
src/libcharon/kernel/kernel_ipsec.h
src/libcharon/kernel/kernel_listener.h

index ba7c3b82159ea9f2b1e204dcc97a039adafadeee..8bbb44917035aff5594989e16e0edd2d411670f8 100644 (file)
@@ -56,22 +56,26 @@ static inline protocol_id_t proto_ip2ike(uint8_t protocol)
 METHOD(kernel_listener_t, acquire, bool,
        private_kernel_handler_t *this, uint32_t reqid, kernel_acquire_data_t *data)
 {
-       char buf[BUF_LEN] = "";
+       char buf[BUF_LEN] = "", sbuf[BUF_LEN] = "";
 
        if (data->label)
        {
                snprintf(buf, sizeof(buf), ", label {%s}",
                                 data->label->get_string(data->label));
        }
+       if (data->seq)
+       {
+               snprintf(sbuf, sizeof(sbuf), ", seq {%u}", data->seq);
+       }
        if (data->src && data->dst)
        {
                DBG1(DBG_KNL, "creating acquire job for policy %R === %R with "
-                        "reqid {%u}%s", data->src, data->dst, reqid, buf);
+                        "reqid {%u}%s%s", data->src, data->dst, reqid, buf, sbuf);
        }
        else
        {
-               DBG1(DBG_KNL, "creating acquire job for policy with reqid {%u}%s",
-                        reqid, buf);
+               DBG1(DBG_KNL, "creating acquire job for policy with reqid {%u}%s%s",
+                        reqid, buf, sbuf);
        }
        lib->processor->queue_job(lib->processor,
                                                          (job_t*)acquire_job_create(reqid, data));
index 0c7fca0a754b39ff47cb25737182a1ff96a39341..be78a9904a1d86ab1dbdfc5de08cbaca0e623771 100644 (file)
@@ -67,6 +67,8 @@ struct kernel_ipsec_sa_id_t {
 struct kernel_ipsec_add_sa_t {
        /** Reqid */
        uint32_t reqid;
+       /** Optional sequence number associated with the acquire triggering the SA */
+       uint32_t seq;
        /** Mode (tunnel, transport...) */
        ipsec_mode_t mode;
        /** List of source traffic selectors */
index caea63fbc1324dbe857c0e445c00ff0df360b8c4..a0dcddfc0fd108c3c58793e41d8dad13fbfc1ca2 100644 (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 sequence number associated with the acquire */
+       uint32_t seq;
 };
 
 /**