[2/2] test/crypto: enable hfn override in PDCP cases
Checks
Commit Message
As most of the real woeld use cases need HFN value to
be updated on per packet basis, changing the default
testing with HFN override enabled for all PDCP cases.
Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
---
app/test-crypto-perf/cperf_ops.c | 10 +++++++---
app/test/test_cryptodev.c | 13 +++++++++++--
2 files changed, 18 insertions(+), 5 deletions(-)
@@ -25,6 +25,10 @@ cperf_set_ops_security(struct rte_crypto_op **ops,
struct rte_security_session *sec_sess =
(struct rte_security_session *)sess;
+ uint32_t *per_pkt_hfn = rte_crypto_op_ctod_offset(ops[i],
+ uint32_t *, iv_offset);
+ *per_pkt_hfn = 0x1;
+
ops[i]->status = RTE_CRYPTO_OP_STATUS_NOT_PROCESSED;
rte_security_attach_session(ops[i], sec_sess);
sym_op->m_src = (struct rte_mbuf *)((uint8_t *)ops[i] +
@@ -529,16 +533,15 @@ cperf_create_session(struct rte_mempool *sess_mp,
cipher_xform.cipher.algo = options->cipher_algo;
cipher_xform.cipher.op = options->cipher_op;
cipher_xform.cipher.iv.offset = iv_offset;
+ cipher_xform.cipher.iv.length = 4;
/* cipher different than null */
if (options->cipher_algo != RTE_CRYPTO_CIPHER_NULL) {
cipher_xform.cipher.key.data = test_vector->cipher_key.data;
cipher_xform.cipher.key.length = test_vector->cipher_key.length;
- cipher_xform.cipher.iv.length = test_vector->cipher_iv.length;
} else {
cipher_xform.cipher.key.data = NULL;
cipher_xform.cipher.key.length = 0;
- cipher_xform.cipher.iv.length = 0;
}
/* Setup Auth Parameters */
@@ -576,8 +579,9 @@ cperf_create_session(struct rte_mempool *sess_mp,
.domain = options->pdcp_domain,
.pkt_dir = 0,
.sn_size = options->pdcp_sn_sz,
- .hfn = 0x1,
+ .hfn = 0x0,
.hfn_threshold = 0x70C0A,
+ .hfn_ovrd = 1,
} },
.crypto_xform = &cipher_xform
};
@@ -7385,7 +7385,8 @@ test_pdcp_proto_SGL(int i, int oop,
ut_params->cipher_xform.cipher.key.data = pdcp_test_crypto_key[i];
ut_params->cipher_xform.cipher.key.length =
pdcp_test_params[i].cipher_key_len;
- ut_params->cipher_xform.cipher.iv.length = 0;
+ ut_params->cipher_xform.cipher.iv.length = 4;
+ ut_params->cipher_xform.cipher.iv.offset = IV_OFFSET;
/* Setup HMAC Parameters if ICV header is required */
if (pdcp_test_params[i].auth_alg != 0) {
@@ -7410,8 +7411,12 @@ test_pdcp_proto_SGL(int i, int oop,
.domain = pdcp_test_params[i].domain,
.pkt_dir = pdcp_test_packet_direction[i],
.sn_size = pdcp_test_data_sn_size[i],
- .hfn = pdcp_test_hfn[i],
+ .hfn = 0, /**
+ * hfn can be set as pdcp_test_hfn[i]
+ * if hfn_ovrd is not set
+ */
.hfn_threshold = pdcp_test_hfn_threshold[i],
+ .hfn_ovrd = 1,
} },
.crypto_xform = &ut_params->cipher_xform
};
@@ -7438,6 +7443,10 @@ test_pdcp_proto_SGL(int i, int oop,
goto on_err;
}
+ uint32_t *per_pkt_hfn = rte_crypto_op_ctod_offset(ut_params->op,
+ uint32_t *, IV_OFFSET);
+ *per_pkt_hfn = pdcp_test_hfn[i];
+
rte_security_attach_session(ut_params->op, ut_params->sec_session);
/* set crypto operation source mbuf */