aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic/include/odp_ipsec_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'platform/linux-generic/include/odp_ipsec_internal.h')
-rw-r--r--platform/linux-generic/include/odp_ipsec_internal.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/platform/linux-generic/include/odp_ipsec_internal.h b/platform/linux-generic/include/odp_ipsec_internal.h
index 8e0cb925e..571796691 100644
--- a/platform/linux-generic/include/odp_ipsec_internal.h
+++ b/platform/linux-generic/include/odp_ipsec_internal.h
@@ -83,10 +83,13 @@ int _odp_ipsec_status_send(odp_queue_t queue,
int result,
odp_ipsec_warn_t warn);
-#define IPSEC_MAX_IV_LEN 32 /**< Maximum IV length in bytes */
+#define IPSEC_MAX_IV_LEN 16 /**< Maximum cipher IV length in bytes */
#define IPSEC_MAX_SALT_LEN 4 /**< Maximum salt length in bytes */
+#define CBC_SALT_LEN 8
+#define CBC_IV_LEN (CBC_SALT_LEN + sizeof(uint64_t))
+
#define IPSEC_SEQ_HI_LEN 4 /**< ESN Higher bits length in bytes */
/* The minimum supported AR window size */
@@ -167,7 +170,10 @@ struct ipsec_sa_s {
uint32_t esp_iv_len;
uint32_t esp_pad_mask;
- uint8_t salt[IPSEC_MAX_SALT_LEN];
+ union {
+ uint8_t salt[IPSEC_MAX_SALT_LEN];
+ uint8_t cbc_salt[CBC_SALT_LEN];
+ };
uint32_t salt_length;
odp_ipsec_lookup_mode_t lookup_mode;
@@ -186,6 +192,7 @@ struct ipsec_sa_s {
/* Only for outbound */
unsigned use_counter_iv : 1;
+ unsigned use_cbc_iv : 1;
unsigned tun_ipv4 : 1;
/* Only for inbound */
@@ -272,6 +279,14 @@ struct ipsec_sa_s {
} out;
};
} sa_info;
+
+ /*
+ * Flag to check if the SA soft expiry status event was already
+ * sent. This field is applicable only for the soft expiry status
+ * event that gets generated for IPsec SAs configured in inline
+ * outbound mode.
+ */
+ odp_atomic_u32_t soft_expiry_notified;
};
/**