diff options
Diffstat (limited to 'platform/linux-generic/include/odp_ipsec_internal.h')
-rw-r--r-- | platform/linux-generic/include/odp_ipsec_internal.h | 19 |
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; }; /** |