From 0464310fd3d4234e5b0aaf730360a1db2b5f7384 Mon Sep 17 00:00:00 2001 From: Piotr Bronowski Date: Tue, 10 May 2022 13:18:22 +0000 Subject: ipsec: add/delete ipsec fast path policy This patch introduces functions to add and delete fast path policies. Type: feature Signed-off-by: Piotr Bronowski Change-Id: I3f1f1323148080c9dac531fbe9fa33bad4efe814 --- src/vnet/ipsec/ipsec_spd.h | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src/vnet/ipsec/ipsec_spd.h') diff --git a/src/vnet/ipsec/ipsec_spd.h b/src/vnet/ipsec/ipsec_spd.h index 757a1b72d51..887ae99c101 100644 --- a/src/vnet/ipsec/ipsec_spd.h +++ b/src/vnet/ipsec/ipsec_spd.h @@ -15,6 +15,8 @@ #ifndef __IPSEC_SPD_H__ #define __IPSEC_SPD_H__ +#include +#include #include #define foreach_ipsec_spd_policy_type \ @@ -41,7 +43,23 @@ typedef enum ipsec_spd_policy_t_ extern u8 *format_ipsec_policy_type (u8 * s, va_list * args); /** - * @brief A Secruity Policy Database + * @brief A fast path Security Policy Database + */ +typedef struct +{ + /** vectors for each of the policy types */ + u32 *fp_policies[IPSEC_SPD_POLICY_N_TYPES]; + u32 *fp_mask_types[IPSEC_SPD_POLICY_N_TYPES]; + + clib_bihash_40_8_t fp_ip6_lookup_hash; /* spd fp ip6 lookup hash table. */ + clib_bihash_16_8_t fp_ip4_lookup_hash; /* spd fp ip4 lookup hash table. */ + + u8 fp_ip6_lookup_hash_initialized; + +} ipsec_spd_fp_t; + +/** + * @brief A Security Policy Database */ typedef struct { @@ -49,6 +67,8 @@ typedef struct u32 id; /** vectors for each of the policy types */ u32 *policies[IPSEC_SPD_POLICY_N_TYPES]; + /* TODO remove fp_spd. Use directly ipsec_spd_t for fast path */ + ipsec_spd_fp_t fp_spd; } ipsec_spd_t; /** -- cgit 1.2.3-korg