xref: /dpdk/drivers/common/cnxk/roc_ie_ot.c (revision 9587a324f28e84937c9efef534da542c30ff122b)
15ece02e7SVidya Sagar Velumuri /* SPDX-License-Identifier: BSD-3-Clause
25ece02e7SVidya Sagar Velumuri  * Copyright(C) 2022 Marvell.
35ece02e7SVidya Sagar Velumuri  */
45ece02e7SVidya Sagar Velumuri 
55ece02e7SVidya Sagar Velumuri #include "roc_api.h"
65ece02e7SVidya Sagar Velumuri #include "roc_priv.h"
75ece02e7SVidya Sagar Velumuri 
85ece02e7SVidya Sagar Velumuri void
95ece02e7SVidya Sagar Velumuri roc_ot_ipsec_inb_sa_init(struct roc_ot_ipsec_inb_sa *sa, bool is_inline)
105ece02e7SVidya Sagar Velumuri {
115ece02e7SVidya Sagar Velumuri 	size_t offset;
125ece02e7SVidya Sagar Velumuri 
135ece02e7SVidya Sagar Velumuri 	memset(sa, 0, sizeof(struct roc_ot_ipsec_inb_sa));
145ece02e7SVidya Sagar Velumuri 
155ece02e7SVidya Sagar Velumuri 	sa->w0.s.pkt_output = ROC_IE_OT_SA_PKT_OUTPUT_NO_FRAG;
165ece02e7SVidya Sagar Velumuri 	sa->w0.s.pkt_format = ROC_IE_OT_SA_PKT_FMT_META;
175ece02e7SVidya Sagar Velumuri 	sa->w0.s.pkind = ROC_IE_OT_CPT_PKIND;
185ece02e7SVidya Sagar Velumuri 	sa->w0.s.et_ovrwr = 1;
19350b7a53SVidya Sagar Velumuri 	sa->w2.s.l3hdr_on_err = 1;
20d029f353SVidya Sagar Velumuri 
21d029f353SVidya Sagar Velumuri 	PLT_SET_USED(is_inline);
225ece02e7SVidya Sagar Velumuri 
235ece02e7SVidya Sagar Velumuri 	offset = offsetof(struct roc_ot_ipsec_inb_sa, ctx);
245ece02e7SVidya Sagar Velumuri 	sa->w0.s.hw_ctx_off = offset / ROC_CTX_UNIT_8B;
255ece02e7SVidya Sagar Velumuri 	sa->w0.s.ctx_push_size = sa->w0.s.hw_ctx_off + 1;
265ece02e7SVidya Sagar Velumuri 	sa->w0.s.ctx_size = ROC_IE_OT_CTX_ILEN;
275ece02e7SVidya Sagar Velumuri 	sa->w0.s.ctx_hdr_size = ROC_IE_OT_SA_CTX_HDR_SIZE;
285ece02e7SVidya Sagar Velumuri 	sa->w0.s.aop_valid = 1;
295ece02e7SVidya Sagar Velumuri }
305ece02e7SVidya Sagar Velumuri 
315ece02e7SVidya Sagar Velumuri void
325ece02e7SVidya Sagar Velumuri roc_ot_ipsec_outb_sa_init(struct roc_ot_ipsec_outb_sa *sa)
335ece02e7SVidya Sagar Velumuri {
345ece02e7SVidya Sagar Velumuri 	size_t offset;
355ece02e7SVidya Sagar Velumuri 
365ece02e7SVidya Sagar Velumuri 	memset(sa, 0, sizeof(struct roc_ot_ipsec_outb_sa));
375ece02e7SVidya Sagar Velumuri 
385ece02e7SVidya Sagar Velumuri 	offset = offsetof(struct roc_ot_ipsec_outb_sa, ctx);
395ece02e7SVidya Sagar Velumuri 	sa->w0.s.ctx_push_size = (offset / ROC_CTX_UNIT_8B) + 1;
405ece02e7SVidya Sagar Velumuri 	sa->w0.s.ctx_size = ROC_IE_OT_CTX_ILEN;
41*9587a324SNithin Dabilpuram 	sa->w0.s.ctx_hdr_size = ROC_IE_OT_SA_CTX_HDR_SIZE;
425ece02e7SVidya Sagar Velumuri 	sa->w0.s.aop_valid = 1;
435ece02e7SVidya Sagar Velumuri }
44