[2/2] test/crypto: enable hfn override in PDCP cases

Message ID 20200601180229.26566-2-akhil.goyal@nxp.com (mailing list archive)
State Superseded, archived
Delegated to: akhil goyal
Headers
Series [1/2] drivers/crypto: fix 18bit PDCP cases with HFN override |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/travis-robot success Travis build: passed
ci/Intel-compilation success Compilation OK

Commit Message

Akhil Goyal June 1, 2020, 6:02 p.m. UTC
  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(-)
  

Patch

diff --git a/app/test-crypto-perf/cperf_ops.c b/app/test-crypto-perf/cperf_ops.c
index 97584ceed..847982219 100644
--- a/app/test-crypto-perf/cperf_ops.c
+++ b/app/test-crypto-perf/cperf_ops.c
@@ -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
 		};
diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index 8f631468b..f4ed89c1c 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -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 */