1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(C) 2021 Marvell. 3 */ 4 5 #ifndef __CN10K_IPSEC_H__ 6 #define __CN10K_IPSEC_H__ 7 8 #include <rte_security.h> 9 10 #include "roc_api.h" 11 12 #include "cnxk_ipsec.h" 13 14 typedef void *CN10K_SA_CONTEXT_MARKER[0]; 15 16 struct cn10k_ipsec_sa { 17 /** Pre-populated CPT inst words */ 18 struct cnxk_cpt_inst_tmpl inst; 19 uint16_t max_extended_len; 20 uint16_t iv_offset; 21 uint8_t iv_length; 22 bool is_outbound; 23 24 /** 25 * End of SW mutable area 26 */ 27 CN10K_SA_CONTEXT_MARKER sw_area_end __rte_aligned(ROC_ALIGN); 28 29 union { 30 /** Inbound SA */ 31 struct roc_ot_ipsec_inb_sa in_sa; 32 /** Outbound SA */ 33 struct roc_ot_ipsec_outb_sa out_sa; 34 }; 35 } __rte_aligned(ROC_ALIGN); 36 37 struct cn10k_sec_session { 38 struct cn10k_ipsec_sa sa; 39 } __rte_aligned(ROC_ALIGN); 40 41 void cn10k_sec_ops_override(void); 42 43 #endif /* __CN10K_IPSEC_H__ */ 44