xref: /dpdk/drivers/crypto/cnxk/cn10k_ipsec.h (revision 938d4e79)
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