};
/* Helper macros */
-#define ROC_IE_ON_PER_PKT_IV BIT(11)
#define ROC_IE_ON_INB_RPTR_HDR 0x8
enum {
};
};
+union roc_on_ipsec_outb_param1 {
+ uint16_t u16;
+ struct {
+ uint16_t frag_num : 4;
+ uint16_t rsvd_4_6 : 3;
+ uint16_t gre_select : 1;
+ uint16_t dsiv : 1;
+ uint16_t ikev2 : 1;
+ uint16_t min_frag_size : 1;
+ uint16_t per_pkt_iv : 1;
+ uint16_t tfc_pad_enable : 1;
+ uint16_t tfc_dummy_pkt : 1;
+ uint16_t rfc_or_override_mode : 1;
+ uint16_t custom_hdr_or_p99 : 1;
+ } s;
+};
+
+union roc_on_ipsec_inb_param2 {
+ uint16_t u16;
+ struct {
+ uint16_t rsvd_0_10 : 11;
+ uint16_t gre_select : 1;
+ uint16_t ikev2 : 1;
+ uint16_t udp_cksum : 1;
+ uint16_t ctx_addr_sel : 1;
+ uint16_t custom_hdr_or_p99 : 1;
+ } s;
+};
+
struct roc_ie_on_sa_ctl {
uint64_t spi : 32;
uint64_t exp_proto_inter_frag : 8;
struct rte_crypto_sym_xform *auth_xform = crypto_xform->next;
struct roc_ie_on_ip_template *template = NULL;
struct roc_cpt *roc_cpt = qp->lf.roc_cpt;
+ union roc_on_ipsec_outb_param1 param1;
struct cnxk_cpt_inst_tmpl *inst_tmpl;
struct roc_ie_on_outb_sa *out_sa;
struct cn9k_sec_session *sess;
w4.u64 = 0;
w4.s.opcode_major = ROC_IE_ON_MAJOR_OP_PROCESS_OUTBOUND_IPSEC;
w4.s.opcode_minor = ctx_len >> 3;
- w4.s.param1 = BIT(9);
- w4.s.param1 |= ROC_IE_ON_PER_PKT_IV;
+
+ param1.u16 = 0;
+ param1.s.ikev2 = 1;
+ param1.s.per_pkt_iv = 1;
+ w4.s.param1 = param1.u16;
+
inst_tmpl->w4 = w4.u64;
w7.u64 = 0;
{
struct rte_crypto_sym_xform *auth_xform = crypto_xform;
struct roc_cpt *roc_cpt = qp->lf.roc_cpt;
+ union roc_on_ipsec_inb_param2 param2;
struct cnxk_cpt_inst_tmpl *inst_tmpl;
struct roc_ie_on_inb_sa *in_sa;
struct cn9k_sec_session *sess;
w4.u64 = 0;
w4.s.opcode_major = ROC_IE_ON_MAJOR_OP_PROCESS_INBOUND_IPSEC;
w4.s.opcode_minor = ctx_len >> 3;
- w4.s.param2 = BIT(12);
+
+ param2.u16 = 0;
+ param2.s.ikev2 = 1;
+ w4.s.param2 = param2.u16;
+
inst_tmpl->w4 = w4.u64;
w7.u64 = 0;