1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(C) 2022 Marvell. 3 */ 4 5 #include "roc_api.h" 6 #include "roc_priv.h" 7 8 void 9 roc_ot_ipsec_inb_sa_init(struct roc_ot_ipsec_inb_sa *sa, bool is_inline) 10 { 11 size_t offset; 12 13 memset(sa, 0, sizeof(struct roc_ot_ipsec_inb_sa)); 14 15 sa->w0.s.pkt_output = ROC_IE_OT_SA_PKT_OUTPUT_NO_FRAG; 16 sa->w0.s.pkt_format = ROC_IE_OT_SA_PKT_FMT_META; 17 sa->w0.s.pkind = ROC_IE_OT_CPT_PKIND; 18 sa->w0.s.et_ovrwr = 1; 19 sa->w2.s.l3hdr_on_err = 1; 20 21 PLT_SET_USED(is_inline); 22 23 offset = offsetof(struct roc_ot_ipsec_inb_sa, ctx); 24 sa->w0.s.hw_ctx_off = offset / ROC_CTX_UNIT_8B; 25 sa->w0.s.ctx_push_size = sa->w0.s.hw_ctx_off + 1; 26 sa->w0.s.ctx_size = ROC_IE_OT_CTX_ILEN; 27 sa->w0.s.ctx_hdr_size = ROC_IE_OT_SA_CTX_HDR_SIZE; 28 sa->w0.s.aop_valid = 1; 29 } 30 31 void 32 roc_ot_ipsec_outb_sa_init(struct roc_ot_ipsec_outb_sa *sa) 33 { 34 size_t offset; 35 36 memset(sa, 0, sizeof(struct roc_ot_ipsec_outb_sa)); 37 38 offset = offsetof(struct roc_ot_ipsec_outb_sa, ctx); 39 sa->w0.s.ctx_push_size = (offset / ROC_CTX_UNIT_8B) + 1; 40 sa->w0.s.ctx_size = ROC_IE_OT_CTX_ILEN; 41 sa->w0.s.ctx_hdr_size = ROC_IE_OT_SA_CTX_HDR_SIZE; 42 sa->w0.s.aop_valid = 1; 43 } 44