/*-
* BSD LICENSE
*
- * Copyright(c) 2015 Intel Corporation. All rights reserved.
+ * Copyright(c) 2015-2016 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
#include <rte_mbuf.h>
#include <rte_malloc.h>
#include <rte_memcpy.h>
-#include <rte_mbuf_offload.h>
#include <rte_crypto.h>
#include <rte_cryptodev.h>
struct crypto_testsuite_params {
struct rte_mempool *mbuf_pool;
- struct rte_mempool *mbuf_ol_pool;
+ struct rte_mempool *op_mpool;
struct rte_cryptodev_config conf;
struct rte_cryptodev_qp_conf qp_conf;
};
struct crypto_unittest_params {
- struct rte_crypto_xform cipher_xform;
- struct rte_crypto_xform auth_xform;
+ struct rte_crypto_sym_xform cipher_xform;
+ struct rte_crypto_sym_xform auth_xform;
- struct rte_cryptodev_session *sess;
+ struct rte_cryptodev_sym_session *sess;
- struct rte_mbuf_offload *ol;
struct rte_crypto_op *op;
struct rte_mbuf *obuf, *ibuf;
struct crypto_unittest_params *ut_params);
static int
-test_AES_CBC_HMAC_SHA512_decrypt_perform(struct rte_cryptodev_session *sess,
+test_AES_CBC_HMAC_SHA512_decrypt_perform(struct rte_cryptodev_sym_session *sess,
struct crypto_unittest_params *ut_params,
struct crypto_testsuite_params *ts_param);
}
#endif
-static struct rte_mbuf *
-process_crypto_request(uint8_t dev_id, struct rte_mbuf *ibuf)
+static struct rte_crypto_op *
+process_crypto_request(uint8_t dev_id, struct rte_crypto_op *op)
{
- struct rte_mbuf *obuf = NULL;
#if HEX_DUMP
hexdump_mbuf_data(stdout, "Enqueued Packet", ibuf);
#endif
- if (rte_cryptodev_enqueue_burst(dev_id, 0, &ibuf, 1) != 1) {
+ if (rte_cryptodev_enqueue_burst(dev_id, 0, &op, 1) != 1) {
printf("Error sending packet for encryption");
return NULL;
}
- while (rte_cryptodev_dequeue_burst(dev_id, 0, &obuf, 1) == 0)
+
+ op = NULL;
+
+ while (rte_cryptodev_dequeue_burst(dev_id, 0, &op, 1) == 0)
rte_pause();
#if HEX_DUMP
hexdump_mbuf_data(stdout, "Dequeued Packet", obuf);
#endif
- return obuf;
+ return op;
}
static struct crypto_testsuite_params testsuite_params = { NULL };
}
}
- ts_params->mbuf_ol_pool = rte_pktmbuf_offload_pool_create(
- "MBUF_OFFLOAD_POOL",
+ ts_params->op_mpool = rte_crypto_op_pool_create(
+ "MBUF_CRYPTO_SYM_OP_POOL",
+ RTE_CRYPTO_OP_TYPE_SYMMETRIC,
NUM_MBUFS, MBUF_CACHE_SIZE,
DEFAULT_NUM_XFORMS *
- sizeof(struct rte_crypto_xform),
+ sizeof(struct rte_crypto_sym_xform),
rte_socket_id());
- if (ts_params->mbuf_ol_pool == NULL) {
+ if (ts_params->op_mpool == NULL) {
RTE_LOG(ERR, USER1, "Can't create CRYPTO_OP_POOL\n");
return TEST_FAILED;
}
ts_params->conf.nb_queue_pairs = info.max_nb_queue_pairs;
ts_params->conf.socket_id = SOCKET_ID_ANY;
- ts_params->conf.session_mp.nb_objs = info.max_nb_sessions;
+ ts_params->conf.session_mp.nb_objs = info.sym.max_nb_sessions;
TEST_ASSERT_SUCCESS(rte_cryptodev_configure(dev_id,
&ts_params->conf),
rte_mempool_count(ts_params->mbuf_pool));
}
-
- if (ts_params->mbuf_ol_pool != NULL) {
+ if (ts_params->op_mpool != NULL) {
RTE_LOG(DEBUG, USER1, "CRYPTO_OP_POOL count %u\n",
- rte_mempool_count(ts_params->mbuf_ol_pool));
+ rte_mempool_count(ts_params->op_mpool));
}
}
ts_params->conf.nb_queue_pairs = DEFAULT_NUM_QPS_PER_QAT_DEVICE;
ts_params->conf.socket_id = SOCKET_ID_ANY;
ts_params->conf.session_mp.nb_objs =
- (gbl_cryptodev_type == RTE_CRYPTODEV_QAT_PMD) ?
+ (gbl_cryptodev_type == RTE_CRYPTODEV_QAT_SYM_PMD) ?
DEFAULT_NUM_OPS_INFLIGHT :
DEFAULT_NUM_OPS_INFLIGHT;
/* free crypto session structure */
if (ut_params->sess) {
- rte_cryptodev_session_free(ts_params->valid_devs[0],
+ rte_cryptodev_sym_session_free(ts_params->valid_devs[0],
ut_params->sess);
ut_params->sess = NULL;
}
/* free crypto operation structure */
- if (ut_params->ol)
- rte_pktmbuf_offload_free(ut_params->ol);
+ if (ut_params->op)
+ rte_crypto_op_free(ut_params->op);
/*
* free mbuf - both obuf and ibuf are usually the same,
rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info);
- ts_params->conf.session_mp.nb_objs = dev_info.max_nb_sessions;
+ ts_params->conf.session_mp.nb_objs = dev_info.sym.max_nb_sessions;
TEST_ASSERT_SUCCESS(rte_cryptodev_configure(ts_params->valid_devs[0],
&ts_params->conf), "Failed to configure cryptodev %u",
TEST_ASSERT_NOT_NULL(ut_params->digest, "no room to append digest");
/* Setup Cipher Parameters */
- ut_params->cipher_xform.type = RTE_CRYPTO_XFORM_CIPHER;
+ ut_params->cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
ut_params->cipher_xform.next = &ut_params->auth_xform;
ut_params->cipher_xform.cipher.algo = RTE_CRYPTO_CIPHER_AES_CBC;
ut_params->cipher_xform.cipher.key.length = CIPHER_KEY_LENGTH_AES_CBC;
/* Setup HMAC Parameters */
- ut_params->auth_xform.type = RTE_CRYPTO_XFORM_AUTH;
+ ut_params->auth_xform.type = RTE_CRYPTO_SYM_XFORM_AUTH;
+
ut_params->auth_xform.next = NULL;
ut_params->auth_xform.auth.op = RTE_CRYPTO_AUTH_OP_GENERATE;
ut_params->auth_xform.auth.digest_length = DIGEST_BYTE_LENGTH_SHA1;
/* Create crypto session*/
- ut_params->sess = rte_cryptodev_session_create(
+ ut_params->sess = rte_cryptodev_sym_session_create(
ts_params->valid_devs[0],
&ut_params->cipher_xform);
TEST_ASSERT_NOT_NULL(ut_params->sess, "Session creation failed");
- /* Generate Crypto op data structure */
- ut_params->ol = rte_pktmbuf_offload_alloc(ts_params->mbuf_ol_pool,
- RTE_PKTMBUF_OL_CRYPTO);
- TEST_ASSERT_NOT_NULL(ut_params->ol,
- "Failed to allocate pktmbuf offload");
+ /* Generate crypto op data structure */
+ ut_params->op = rte_crypto_op_alloc(ts_params->op_mpool,
+ RTE_CRYPTO_OP_TYPE_SYMMETRIC);
+ TEST_ASSERT_NOT_NULL(ut_params->op,
+ "Failed to allocate symmetric crypto operation struct");
- ut_params->op = &ut_params->ol->op.crypto;
+ rte_crypto_op_attach_sym_session(ut_params->op, ut_params->sess);
- /* Set crypto operation data parameters */
- rte_crypto_op_attach_session(ut_params->op, ut_params->sess);
+ struct rte_crypto_sym_op *sym_op = ut_params->op->sym;
+
+ /* set crypto operation source mbuf */
+ sym_op->m_src = ut_params->ibuf;
- ut_params->op->digest.data = ut_params->digest;
- ut_params->op->digest.phys_addr = rte_pktmbuf_mtophys_offset(
+ /* Set crypto operation authentication parameters */
+ sym_op->auth.digest.data = ut_params->digest;
+ sym_op->auth.digest.phys_addr = rte_pktmbuf_mtophys_offset(
ut_params->ibuf, QUOTE_512_BYTES);
- ut_params->op->digest.length = DIGEST_BYTE_LENGTH_SHA1;
+ sym_op->auth.digest.length = DIGEST_BYTE_LENGTH_SHA1;
- ut_params->op->iv.data = (uint8_t *)rte_pktmbuf_prepend(ut_params->ibuf,
- CIPHER_IV_LENGTH_AES_CBC);
- ut_params->op->iv.phys_addr = rte_pktmbuf_mtophys(ut_params->ibuf);
- ut_params->op->iv.length = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->auth.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->auth.data.length = QUOTE_512_BYTES;
- rte_memcpy(ut_params->op->iv.data, aes_cbc_iv,
+ /* Set crypto operation cipher parameters */
+ sym_op->cipher.iv.data = (uint8_t *)rte_pktmbuf_prepend(ut_params->ibuf,
CIPHER_IV_LENGTH_AES_CBC);
+ sym_op->cipher.iv.phys_addr = rte_pktmbuf_mtophys(ut_params->ibuf);
+ sym_op->cipher.iv.length = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_cipher.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_cipher.length = QUOTE_512_BYTES;
- ut_params->op->data.to_hash.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_hash.length = QUOTE_512_BYTES;
+ rte_memcpy(sym_op->cipher.iv.data, aes_cbc_iv,
+ CIPHER_IV_LENGTH_AES_CBC);
- rte_pktmbuf_offload_attach(ut_params->ibuf, ut_params->ol);
+ sym_op->cipher.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->cipher.data.length = QUOTE_512_BYTES;
/* Process crypto operation */
- ut_params->obuf = process_crypto_request(ts_params->valid_devs[0],
- ut_params->ibuf);
- TEST_ASSERT_NOT_NULL(ut_params->obuf, "failed to retrieve obuf");
+ TEST_ASSERT_NOT_NULL(process_crypto_request(ts_params->valid_devs[0],
+ ut_params->op), "failed to process sym crypto op");
+
+ TEST_ASSERT_EQUAL(ut_params->op->status, RTE_CRYPTO_OP_STATUS_SUCCESS,
+ "crypto op processing failed");
/* Validate obuf */
- TEST_ASSERT_BUFFERS_ARE_EQUAL(
- rte_pktmbuf_mtod(ut_params->obuf, uint8_t *) +
- CIPHER_IV_LENGTH_AES_CBC,
+ uint8_t *ciphertext = rte_pktmbuf_mtod_offset(ut_params->op->sym->m_src,
+ uint8_t *, CIPHER_IV_LENGTH_AES_CBC);
+
+ TEST_ASSERT_BUFFERS_ARE_EQUAL(ciphertext,
catch_22_quote_2_512_bytes_AES_CBC_ciphertext,
QUOTE_512_BYTES,
"ciphertext data not as expected");
- TEST_ASSERT_BUFFERS_ARE_EQUAL(
- rte_pktmbuf_mtod(ut_params->obuf, uint8_t *) +
- CIPHER_IV_LENGTH_AES_CBC + QUOTE_512_BYTES,
+ uint8_t *digest = ciphertext + QUOTE_512_BYTES;
+
+ TEST_ASSERT_BUFFERS_ARE_EQUAL(digest,
catch_22_quote_2_512_bytes_AES_CBC_HMAC_SHA1_digest,
gbl_cryptodev_type == RTE_CRYPTODEV_AESNI_MB_PMD ?
TRUNCATED_DIGEST_BYTE_LENGTH_SHA1 :
TEST_ASSERT_NOT_NULL(ut_params->digest, "no room to append digest");
/* Generate Crypto op data structure */
- ut_params->ol = rte_pktmbuf_offload_alloc(ts_params->mbuf_ol_pool,
- RTE_PKTMBUF_OL_CRYPTO);
- TEST_ASSERT_NOT_NULL(ut_params->ol,
- "Failed to allocate pktmbuf offload");
-
- ut_params->op = &ut_params->ol->op.crypto;
+ ut_params->op = rte_crypto_op_alloc(ts_params->op_mpool,
+ RTE_CRYPTO_OP_TYPE_SYMMETRIC);
+ TEST_ASSERT_NOT_NULL(ut_params->op,
+ "Failed to allocate symmetric crypto operation struct");
- TEST_ASSERT_NOT_NULL(rte_pktmbuf_offload_alloc_crypto_xforms(
- ut_params->ol, 2),
+ TEST_ASSERT_NOT_NULL(rte_crypto_op_sym_xforms_alloc(ut_params->op, 2),
"failed to allocate space for crypto transforms");
+ struct rte_crypto_sym_op *sym_op = ut_params->op->sym;
+
+ /* set crypto operation source mbuf */
+ sym_op->m_src = ut_params->ibuf;
+
/* Set crypto operation data parameters */
- ut_params->op->xform->type = RTE_CRYPTO_XFORM_CIPHER;
+ sym_op->xform->type = RTE_CRYPTO_SYM_XFORM_CIPHER;
/* cipher parameters */
- ut_params->op->xform->cipher.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT;
- ut_params->op->xform->cipher.algo = RTE_CRYPTO_CIPHER_AES_CBC;
- ut_params->op->xform->cipher.key.data = aes_cbc_key;
- ut_params->op->xform->cipher.key.length = CIPHER_KEY_LENGTH_AES_CBC;
+ sym_op->xform->cipher.op = RTE_CRYPTO_CIPHER_OP_ENCRYPT;
+ sym_op->xform->cipher.algo = RTE_CRYPTO_CIPHER_AES_CBC;
+ sym_op->xform->cipher.key.data = aes_cbc_key;
+ sym_op->xform->cipher.key.length = CIPHER_KEY_LENGTH_AES_CBC;
/* hash parameters */
- ut_params->op->xform->next->type = RTE_CRYPTO_XFORM_AUTH;
+ sym_op->xform->next->type = RTE_CRYPTO_SYM_XFORM_AUTH;
- ut_params->op->xform->next->auth.op = RTE_CRYPTO_AUTH_OP_GENERATE;
- ut_params->op->xform->next->auth.algo = RTE_CRYPTO_AUTH_SHA1_HMAC;
- ut_params->op->xform->next->auth.key.length = HMAC_KEY_LENGTH_SHA1;
- ut_params->op->xform->next->auth.key.data = hmac_sha1_key;
- ut_params->op->xform->next->auth.digest_length =
+ sym_op->xform->next->auth.op = RTE_CRYPTO_AUTH_OP_GENERATE;
+ sym_op->xform->next->auth.algo = RTE_CRYPTO_AUTH_SHA1_HMAC;
+ sym_op->xform->next->auth.key.length = HMAC_KEY_LENGTH_SHA1;
+ sym_op->xform->next->auth.key.data = hmac_sha1_key;
+ sym_op->xform->next->auth.digest_length =
DIGEST_BYTE_LENGTH_SHA1;
- ut_params->op->digest.data = ut_params->digest;
- ut_params->op->digest.phys_addr = rte_pktmbuf_mtophys_offset(
+ sym_op->auth.digest.data = ut_params->digest;
+ sym_op->auth.digest.phys_addr = rte_pktmbuf_mtophys_offset(
ut_params->ibuf, QUOTE_512_BYTES);
- ut_params->op->digest.length = DIGEST_BYTE_LENGTH_SHA1;
+ sym_op->auth.digest.length = DIGEST_BYTE_LENGTH_SHA1;
- ut_params->op->iv.data = (uint8_t *)rte_pktmbuf_prepend(ut_params->ibuf,
- CIPHER_IV_LENGTH_AES_CBC);
- ut_params->op->iv.phys_addr = rte_pktmbuf_mtophys(ut_params->ibuf);
- ut_params->op->iv.length = CIPHER_IV_LENGTH_AES_CBC;
- rte_memcpy(ut_params->op->iv.data, aes_cbc_iv,
+ sym_op->auth.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->auth.data.length = QUOTE_512_BYTES;
+
+ sym_op->cipher.iv.data = (uint8_t *)rte_pktmbuf_prepend(ut_params->ibuf,
CIPHER_IV_LENGTH_AES_CBC);
+ sym_op->cipher.iv.phys_addr = rte_pktmbuf_mtophys(ut_params->ibuf);
+ sym_op->cipher.iv.length = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_cipher.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_cipher.length = QUOTE_512_BYTES;
- ut_params->op->data.to_hash.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_hash.length = QUOTE_512_BYTES;
+ rte_memcpy(sym_op->cipher.iv.data, aes_cbc_iv,
+ CIPHER_IV_LENGTH_AES_CBC);
- rte_pktmbuf_offload_attach(ut_params->ibuf, ut_params->ol);
+ sym_op->cipher.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->cipher.data.length = QUOTE_512_BYTES;
/* Process crypto operation */
- ut_params->obuf = process_crypto_request(ts_params->valid_devs[0],
- ut_params->ibuf);
- TEST_ASSERT_NOT_NULL(ut_params->obuf, "failed to retrieve obuf");
+ TEST_ASSERT_NOT_NULL(process_crypto_request(ts_params->valid_devs[0],
+ ut_params->op), "failed to process sym crypto op");
+
+ TEST_ASSERT_EQUAL(ut_params->op->status, RTE_CRYPTO_OP_STATUS_SUCCESS,
+ "crypto op processing failed");
+
+ ut_params->obuf = ut_params->op->sym->m_src;
/* Validate obuf */
TEST_ASSERT_BUFFERS_ARE_EQUAL(
DIGEST_BYTE_LENGTH_SHA1);
/* Setup Cipher Parameters */
- ut_params->cipher_xform.type = RTE_CRYPTO_XFORM_CIPHER;
+ ut_params->cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
ut_params->cipher_xform.next = NULL;
ut_params->cipher_xform.cipher.algo = RTE_CRYPTO_CIPHER_AES_CBC;
ut_params->cipher_xform.cipher.key.length = CIPHER_KEY_LENGTH_AES_CBC;
/* Setup HMAC Parameters */
- ut_params->auth_xform.type = RTE_CRYPTO_XFORM_AUTH;
+ ut_params->auth_xform.type = RTE_CRYPTO_SYM_XFORM_AUTH;
ut_params->auth_xform.next = &ut_params->cipher_xform;
ut_params->auth_xform.auth.op = RTE_CRYPTO_AUTH_OP_VERIFY;
ut_params->auth_xform.auth.digest_length = DIGEST_BYTE_LENGTH_SHA1;
/* Create Crypto session*/
- ut_params->sess = rte_cryptodev_session_create(ts_params->valid_devs[0],
- &ut_params->auth_xform);
+ ut_params->sess =
+ rte_cryptodev_sym_session_create(ts_params->valid_devs[0],
+ &ut_params->auth_xform);
TEST_ASSERT_NOT_NULL(ut_params->sess, "Session creation failed");
/* Generate Crypto op data structure */
- ut_params->ol = rte_pktmbuf_offload_alloc(ts_params->mbuf_ol_pool,
- RTE_PKTMBUF_OL_CRYPTO);
- TEST_ASSERT_NOT_NULL(ut_params->ol,
- "Failed to allocate pktmbuf offload");
+ ut_params->op = rte_crypto_op_alloc(ts_params->op_mpool,
+ RTE_CRYPTO_OP_TYPE_SYMMETRIC);
+ TEST_ASSERT_NOT_NULL(ut_params->op,
+ "Failed to allocate symmetric crypto operation struct");
- ut_params->op = &ut_params->ol->op.crypto;
+ /* attach symmetric crypto session to crypto operations */
+ rte_crypto_op_attach_sym_session(ut_params->op, ut_params->sess);
+ struct rte_crypto_sym_op *sym_op = ut_params->op->sym;
- /* Set crypto operation data parameters */
- rte_crypto_op_attach_session(ut_params->op, ut_params->sess);
+ /* set crypto operation source mbuf */
+ sym_op->m_src = ut_params->ibuf;
- ut_params->op->digest.data = ut_params->digest;
- ut_params->op->digest.phys_addr = rte_pktmbuf_mtophys_offset(
+ sym_op->auth.digest.data = ut_params->digest;
+ sym_op->auth.digest.phys_addr = rte_pktmbuf_mtophys_offset(
ut_params->ibuf, QUOTE_512_BYTES);
- ut_params->op->digest.length = DIGEST_BYTE_LENGTH_SHA1;
+ sym_op->auth.digest.length = DIGEST_BYTE_LENGTH_SHA1;
- ut_params->op->iv.data = (uint8_t *)rte_pktmbuf_prepend(ut_params->ibuf,
- CIPHER_IV_LENGTH_AES_CBC);
- ut_params->op->iv.phys_addr = rte_pktmbuf_mtophys(ut_params->ibuf);
- ut_params->op->iv.length = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->auth.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->auth.data.length = QUOTE_512_BYTES;
- rte_memcpy(ut_params->op->iv.data, aes_cbc_iv,
+ sym_op->cipher.iv.data = (uint8_t *)rte_pktmbuf_prepend(ut_params->ibuf,
CIPHER_IV_LENGTH_AES_CBC);
+ sym_op->cipher.iv.phys_addr = rte_pktmbuf_mtophys(ut_params->ibuf);
+ sym_op->cipher.iv.length = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_cipher.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_cipher.length = QUOTE_512_BYTES;
+ rte_memcpy(sym_op->cipher.iv.data, aes_cbc_iv,
+ CIPHER_IV_LENGTH_AES_CBC);
- ut_params->op->data.to_hash.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_hash.length = QUOTE_512_BYTES;
+ sym_op->cipher.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->cipher.data.length = QUOTE_512_BYTES;
- rte_pktmbuf_offload_attach(ut_params->ibuf, ut_params->ol);
/* Process crypto operation */
- ut_params->obuf = process_crypto_request(ts_params->valid_devs[0],
- ut_params->ibuf);
- TEST_ASSERT_NOT_NULL(ut_params->obuf, "failed to retrieve obuf");
+ TEST_ASSERT_NOT_NULL(process_crypto_request(ts_params->valid_devs[0],
+ ut_params->op), "failed to process sym crypto op");
+
+ TEST_ASSERT_EQUAL(ut_params->op->status, RTE_CRYPTO_OP_STATUS_SUCCESS,
+ "crypto op processing failed");
+
+ ut_params->obuf = ut_params->op->sym->m_src;
+
/* Validate obuf */
TEST_ASSERT_BUFFERS_ARE_EQUAL(
TEST_ASSERT_NOT_NULL(ut_params->digest, "no room to append digest");
/* Setup Cipher Parameters */
- ut_params->cipher_xform.type = RTE_CRYPTO_XFORM_CIPHER;
+ ut_params->cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
ut_params->cipher_xform.next = &ut_params->auth_xform;
ut_params->cipher_xform.cipher.algo = RTE_CRYPTO_CIPHER_AES_CBC;
ut_params->cipher_xform.cipher.key.length = CIPHER_KEY_LENGTH_AES_CBC;
/* Setup HMAC Parameters */
- ut_params->auth_xform.type = RTE_CRYPTO_XFORM_AUTH;
+ ut_params->auth_xform.type = RTE_CRYPTO_SYM_XFORM_AUTH;
ut_params->auth_xform.next = NULL;
ut_params->auth_xform.auth.op = RTE_CRYPTO_AUTH_OP_GENERATE;
ut_params->auth_xform.auth.digest_length = DIGEST_BYTE_LENGTH_SHA256;
/* Create Crypto session*/
- ut_params->sess = rte_cryptodev_session_create(ts_params->valid_devs[0],
+ ut_params->sess = rte_cryptodev_sym_session_create(
+ ts_params->valid_devs[0],
&ut_params->cipher_xform);
TEST_ASSERT_NOT_NULL(ut_params->sess, "Session creation failed");
/* Generate Crypto op data structure */
- ut_params->ol = rte_pktmbuf_offload_alloc(ts_params->mbuf_ol_pool,
- RTE_PKTMBUF_OL_CRYPTO);
- TEST_ASSERT_NOT_NULL(ut_params->ol,
- "Failed to allocate pktmbuf offload");
+ ut_params->op = rte_crypto_op_alloc(ts_params->op_mpool,
+ RTE_CRYPTO_OP_TYPE_SYMMETRIC);
+ TEST_ASSERT_NOT_NULL(ut_params->op,
+ "Failed to allocate symmetric crypto operation struct");
- ut_params->op = &ut_params->ol->op.crypto;
+ rte_crypto_op_attach_sym_session(ut_params->op, ut_params->sess);
+ struct rte_crypto_sym_op *sym_op = ut_params->op->sym;
- /* Set crypto operation data parameters */
- rte_crypto_op_attach_session(ut_params->op, ut_params->sess);
+ /* set crypto operation source mbuf */
+ sym_op->m_src = ut_params->ibuf;
- ut_params->op->digest.data = ut_params->digest;
- ut_params->op->digest.phys_addr = rte_pktmbuf_mtophys_offset(
+ sym_op->auth.digest.data = ut_params->digest;
+ sym_op->auth.digest.phys_addr = rte_pktmbuf_mtophys_offset(
ut_params->ibuf, QUOTE_512_BYTES);
- ut_params->op->digest.length = DIGEST_BYTE_LENGTH_SHA256;
+ sym_op->auth.digest.length = DIGEST_BYTE_LENGTH_SHA256;
- ut_params->op->iv.data = (uint8_t *)rte_pktmbuf_prepend(ut_params->ibuf,
- CIPHER_IV_LENGTH_AES_CBC);
- ut_params->op->iv.phys_addr = rte_pktmbuf_mtophys(ut_params->ibuf);
- ut_params->op->iv.length = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->auth.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->auth.data.length = QUOTE_512_BYTES;
- rte_memcpy(ut_params->op->iv.data, aes_cbc_iv,
+ sym_op->cipher.iv.data = (uint8_t *)rte_pktmbuf_prepend(ut_params->ibuf,
CIPHER_IV_LENGTH_AES_CBC);
+ sym_op->cipher.iv.phys_addr = rte_pktmbuf_mtophys(ut_params->ibuf);
+ sym_op->cipher.iv.length = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_cipher.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_cipher.length = QUOTE_512_BYTES;
- ut_params->op->data.to_hash.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_hash.length = QUOTE_512_BYTES;
+ rte_memcpy(sym_op->cipher.iv.data, aes_cbc_iv,
+ CIPHER_IV_LENGTH_AES_CBC);
- rte_pktmbuf_offload_attach(ut_params->ibuf, ut_params->ol);
+ sym_op->cipher.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->cipher.data.length = QUOTE_512_BYTES;
/* Process crypto operation */
- ut_params->obuf = process_crypto_request(ts_params->valid_devs[0],
- ut_params->ibuf);
- TEST_ASSERT_NOT_NULL(ut_params->obuf, "failed to retrieve obuf");
+ TEST_ASSERT_NOT_NULL(process_crypto_request(ts_params->valid_devs[0],
+ ut_params->op), "failed to process sym crypto op");
+
+ TEST_ASSERT_EQUAL(ut_params->op->status, RTE_CRYPTO_OP_STATUS_SUCCESS,
+ "crypto op processing failed");
+
+ ut_params->obuf = ut_params->op->sym->m_src;
/* Validate obuf */
TEST_ASSERT_BUFFERS_ARE_EQUAL(
DIGEST_BYTE_LENGTH_SHA256);
/* Setup Cipher Parameters */
- ut_params->cipher_xform.type = RTE_CRYPTO_XFORM_CIPHER;
+ ut_params->cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
ut_params->cipher_xform.next = NULL;
ut_params->cipher_xform.cipher.algo = RTE_CRYPTO_CIPHER_AES_CBC;
ut_params->cipher_xform.cipher.key.length = CIPHER_KEY_LENGTH_AES_CBC;
/* Setup HMAC Parameters */
- ut_params->auth_xform.type = RTE_CRYPTO_XFORM_AUTH;
+ ut_params->auth_xform.type = RTE_CRYPTO_SYM_XFORM_AUTH;
ut_params->auth_xform.next = &ut_params->cipher_xform;
ut_params->auth_xform.auth.op = RTE_CRYPTO_AUTH_OP_VERIFY;
ut_params->auth_xform.auth.digest_length = DIGEST_BYTE_LENGTH_SHA256;
/* Create Crypto session*/
- ut_params->sess = rte_cryptodev_session_create(ts_params->valid_devs[0],
- &ut_params->auth_xform);
+ ut_params->sess =
+ rte_cryptodev_sym_session_create(ts_params->valid_devs[0],
+ &ut_params->auth_xform);
TEST_ASSERT_NOT_NULL(ut_params->sess, "Session creation failed");
/* Generate Crypto op data structure */
- ut_params->ol = rte_pktmbuf_offload_alloc(ts_params->mbuf_ol_pool,
- RTE_PKTMBUF_OL_CRYPTO);
- TEST_ASSERT_NOT_NULL(ut_params->ol,
- "Failed to allocate pktmbuf offload");
-
- ut_params->op = &ut_params->ol->op.crypto;
+ ut_params->op = rte_crypto_op_alloc(ts_params->op_mpool,
+ RTE_CRYPTO_OP_TYPE_SYMMETRIC);
+ TEST_ASSERT_NOT_NULL(ut_params->op,
+ "Failed to allocate symmetric crypto operation struct");
/* Set crypto operation data parameters */
- rte_crypto_op_attach_session(ut_params->op, ut_params->sess);
+ rte_crypto_op_attach_sym_session(ut_params->op, ut_params->sess);
+
+ struct rte_crypto_sym_op *sym_op = ut_params->op->sym;
+
+ /* set crypto operation source mbuf */
+ sym_op->m_src = ut_params->ibuf;
- ut_params->op->digest.data = ut_params->digest;
- ut_params->op->digest.phys_addr = rte_pktmbuf_mtophys_offset(
+ sym_op->auth.digest.data = ut_params->digest;
+ sym_op->auth.digest.phys_addr = rte_pktmbuf_mtophys_offset(
ut_params->ibuf, QUOTE_512_BYTES);
- ut_params->op->digest.length = DIGEST_BYTE_LENGTH_SHA256;
+ sym_op->auth.digest.length = DIGEST_BYTE_LENGTH_SHA256;
- ut_params->op->iv.data = (uint8_t *)rte_pktmbuf_prepend(
+ sym_op->auth.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->auth.data.length = QUOTE_512_BYTES;
+
+ sym_op->cipher.iv.data = (uint8_t *)rte_pktmbuf_prepend(
ut_params->ibuf, CIPHER_IV_LENGTH_AES_CBC);
- ut_params->op->iv.phys_addr = rte_pktmbuf_mtophys(ut_params->ibuf);
- ut_params->op->iv.length = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->cipher.iv.phys_addr = rte_pktmbuf_mtophys(ut_params->ibuf);
+ sym_op->cipher.iv.length = CIPHER_IV_LENGTH_AES_CBC;
- rte_memcpy(ut_params->op->iv.data, aes_cbc_iv,
+ rte_memcpy(sym_op->cipher.iv.data, aes_cbc_iv,
CIPHER_IV_LENGTH_AES_CBC);
- ut_params->op->data.to_cipher.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_cipher.length = QUOTE_512_BYTES;
+ sym_op->cipher.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->cipher.data.length = QUOTE_512_BYTES;
- ut_params->op->data.to_hash.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_hash.length = QUOTE_512_BYTES;
+ /* Process crypto operation */
+ TEST_ASSERT_NOT_NULL(process_crypto_request(ts_params->valid_devs[0],
+ ut_params->op), "failed to process sym crypto op");
- rte_pktmbuf_offload_attach(ut_params->ibuf, ut_params->ol);
+ TEST_ASSERT_EQUAL(ut_params->op->status, RTE_CRYPTO_OP_STATUS_SUCCESS,
+ "crypto op processing failed");
- /* Process crypto operation */
- ut_params->obuf = process_crypto_request(ts_params->valid_devs[0],
- ut_params->ibuf);
- TEST_ASSERT_NOT_NULL(ut_params->obuf, "failed to retrieve obuf");
+ ut_params->obuf = ut_params->op->sym->m_src;
/* Validate obuf */
TEST_ASSERT_BUFFERS_ARE_EQUAL(
TEST_ASSERT_NOT_NULL(ut_params->digest, "no room to append digest");
/* Setup Cipher Parameters */
- ut_params->cipher_xform.type = RTE_CRYPTO_XFORM_CIPHER;
+ ut_params->cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
ut_params->cipher_xform.next = &ut_params->auth_xform;
ut_params->cipher_xform.cipher.algo = RTE_CRYPTO_CIPHER_AES_CBC;
ut_params->cipher_xform.cipher.key.length = CIPHER_KEY_LENGTH_AES_CBC;
/* Setup HMAC Parameters */
- ut_params->auth_xform.type = RTE_CRYPTO_XFORM_AUTH;
+ ut_params->auth_xform.type = RTE_CRYPTO_SYM_XFORM_AUTH;
ut_params->auth_xform.next = NULL;
ut_params->auth_xform.auth.op = RTE_CRYPTO_AUTH_OP_GENERATE;
ut_params->auth_xform.auth.digest_length = DIGEST_BYTE_LENGTH_SHA512;
/* Create Crypto session*/
- ut_params->sess = rte_cryptodev_session_create(ts_params->valid_devs[0],
- &ut_params->cipher_xform);
+ ut_params->sess =
+ rte_cryptodev_sym_session_create(ts_params->valid_devs[0],
+ &ut_params->cipher_xform);
TEST_ASSERT_NOT_NULL(ut_params->sess, "Session creation failed");
-
/* Generate Crypto op data structure */
- ut_params->ol = rte_pktmbuf_offload_alloc(ts_params->mbuf_ol_pool,
- RTE_PKTMBUF_OL_CRYPTO);
- TEST_ASSERT_NOT_NULL(ut_params->ol,
- "Failed to allocate pktmbuf offload");
+ ut_params->op = rte_crypto_op_alloc(ts_params->op_mpool,
+ RTE_CRYPTO_OP_TYPE_SYMMETRIC);
+ TEST_ASSERT_NOT_NULL(ut_params->op,
+ "Failed to allocate symmetric crypto operation struct");
- ut_params->op = &ut_params->ol->op.crypto;
+ rte_crypto_op_attach_sym_session(ut_params->op, ut_params->sess);
+ struct rte_crypto_sym_op *sym_op = ut_params->op->sym;
- /* Set crypto operation data parameters */
- rte_crypto_op_attach_session(ut_params->op, ut_params->sess);
+ /* set crypto operation source mbuf */
+ sym_op->m_src = ut_params->ibuf;
- ut_params->op->digest.data = ut_params->digest;
- ut_params->op->digest.phys_addr = rte_pktmbuf_mtophys_offset(
+ sym_op->auth.digest.data = ut_params->digest;
+ sym_op->auth.digest.phys_addr = rte_pktmbuf_mtophys_offset(
ut_params->ibuf, QUOTE_512_BYTES);
- ut_params->op->digest.length = DIGEST_BYTE_LENGTH_SHA512;
+ sym_op->auth.digest.length = DIGEST_BYTE_LENGTH_SHA512;
- ut_params->op->iv.data = (uint8_t *)rte_pktmbuf_prepend(ut_params->ibuf,
- CIPHER_IV_LENGTH_AES_CBC);
- ut_params->op->iv.phys_addr = rte_pktmbuf_mtophys(ut_params->ibuf);
- ut_params->op->iv.length = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->auth.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->auth.data.length = QUOTE_512_BYTES;
- rte_memcpy(ut_params->op->iv.data, aes_cbc_iv,
+ sym_op->cipher.iv.data = (uint8_t *)rte_pktmbuf_prepend(ut_params->ibuf,
CIPHER_IV_LENGTH_AES_CBC);
+ sym_op->cipher.iv.phys_addr = rte_pktmbuf_mtophys(ut_params->ibuf);
+ sym_op->cipher.iv.length = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_cipher.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_cipher.length = QUOTE_512_BYTES;
- ut_params->op->data.to_hash.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_hash.length = QUOTE_512_BYTES;
+ rte_memcpy(sym_op->cipher.iv.data, aes_cbc_iv,
+ CIPHER_IV_LENGTH_AES_CBC);
- rte_pktmbuf_offload_attach(ut_params->ibuf, ut_params->ol);
+ sym_op->cipher.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->cipher.data.length = QUOTE_512_BYTES;
/* Process crypto operation */
- ut_params->obuf = process_crypto_request(ts_params->valid_devs[0],
- ut_params->ibuf);
- TEST_ASSERT_NOT_NULL(ut_params->obuf, "failed to retrieve obuf");
+ TEST_ASSERT_NOT_NULL(process_crypto_request(ts_params->valid_devs[0],
+ ut_params->op), "failed to process sym crypto op");
+
+ TEST_ASSERT_EQUAL(ut_params->op->status, RTE_CRYPTO_OP_STATUS_SUCCESS,
+ "crypto op processing failed");
+
+ ut_params->obuf = ut_params->op->sym->m_src;
/* Validate obuf */
TEST_ASSERT_BUFFERS_ARE_EQUAL(
struct crypto_unittest_params *ut_params);
static int
-test_AES_CBC_HMAC_SHA512_decrypt_perform(struct rte_cryptodev_session *sess,
+test_AES_CBC_HMAC_SHA512_decrypt_perform(struct rte_cryptodev_sym_session *sess,
struct crypto_unittest_params *ut_params,
struct crypto_testsuite_params *ts_params);
"Failed to create session params");
/* Create Crypto session*/
- ut_params->sess = rte_cryptodev_session_create(ts_params->valid_devs[0],
- &ut_params->auth_xform);
+ ut_params->sess =
+ rte_cryptodev_sym_session_create(ts_params->valid_devs[0],
+ &ut_params->auth_xform);
TEST_ASSERT_NOT_NULL(ut_params->sess, "Session creation failed");
return test_AES_CBC_HMAC_SHA512_decrypt_perform(ut_params->sess,
{
/* Setup Cipher Parameters */
- ut_params->cipher_xform.type = RTE_CRYPTO_XFORM_CIPHER;
+ ut_params->cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
ut_params->cipher_xform.next = NULL;
ut_params->cipher_xform.cipher.algo = RTE_CRYPTO_CIPHER_AES_CBC;
ut_params->cipher_xform.cipher.key.length = CIPHER_KEY_LENGTH_AES_CBC;
/* Setup HMAC Parameters */
- ut_params->auth_xform.type = RTE_CRYPTO_XFORM_AUTH;
+ ut_params->auth_xform.type = RTE_CRYPTO_SYM_XFORM_AUTH;
ut_params->auth_xform.next = &ut_params->cipher_xform;
ut_params->auth_xform.auth.op = RTE_CRYPTO_AUTH_OP_VERIFY;
static int
-test_AES_CBC_HMAC_SHA512_decrypt_perform(struct rte_cryptodev_session *sess,
+test_AES_CBC_HMAC_SHA512_decrypt_perform(struct rte_cryptodev_sym_session *sess,
struct crypto_unittest_params *ut_params,
struct crypto_testsuite_params *ts_params)
{
DIGEST_BYTE_LENGTH_SHA512);
/* Generate Crypto op data structure */
- ut_params->ol = rte_pktmbuf_offload_alloc(ts_params->mbuf_ol_pool,
- RTE_PKTMBUF_OL_CRYPTO);
- TEST_ASSERT_NOT_NULL(ut_params->ol,
- "Failed to allocate pktmbuf offload");
+ ut_params->op = rte_crypto_op_alloc(ts_params->op_mpool,
+ RTE_CRYPTO_OP_TYPE_SYMMETRIC);
+ TEST_ASSERT_NOT_NULL(ut_params->op,
+ "Failed to allocate symmetric crypto operation struct");
- ut_params->op = &ut_params->ol->op.crypto;
+ rte_crypto_op_attach_sym_session(ut_params->op, sess);
+ struct rte_crypto_sym_op *sym_op = ut_params->op->sym;
- /* Set crypto operation data parameters */
- rte_crypto_op_attach_session(ut_params->op, sess);
+ /* set crypto operation source mbuf */
+ sym_op->m_src = ut_params->ibuf;
- ut_params->op->digest.data = ut_params->digest;
- ut_params->op->digest.phys_addr = rte_pktmbuf_mtophys_offset(
+ sym_op->auth.digest.data = ut_params->digest;
+ sym_op->auth.digest.phys_addr = rte_pktmbuf_mtophys_offset(
ut_params->ibuf, QUOTE_512_BYTES);
- ut_params->op->digest.length = DIGEST_BYTE_LENGTH_SHA512;
+ sym_op->auth.digest.length = DIGEST_BYTE_LENGTH_SHA512;
- ut_params->op->iv.data = (uint8_t *)rte_pktmbuf_prepend(
+ sym_op->auth.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->auth.data.length = QUOTE_512_BYTES;
+
+ sym_op->cipher.iv.data = (uint8_t *)rte_pktmbuf_prepend(
ut_params->ibuf, CIPHER_IV_LENGTH_AES_CBC);
- ut_params->op->iv.phys_addr = rte_pktmbuf_mtophys_offset(
+ sym_op->cipher.iv.phys_addr = rte_pktmbuf_mtophys_offset(
ut_params->ibuf, 0);
- ut_params->op->iv.length = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->cipher.iv.length = CIPHER_IV_LENGTH_AES_CBC;
- rte_memcpy(ut_params->op->iv.data, aes_cbc_iv,
+ rte_memcpy(sym_op->cipher.iv.data, aes_cbc_iv,
CIPHER_IV_LENGTH_AES_CBC);
- ut_params->op->data.to_cipher.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_cipher.length = QUOTE_512_BYTES;
+ sym_op->cipher.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->cipher.data.length = QUOTE_512_BYTES;
- ut_params->op->data.to_hash.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_hash.length = QUOTE_512_BYTES;
+ /* Process crypto operation */
+ TEST_ASSERT_NOT_NULL(process_crypto_request(ts_params->valid_devs[0],
+ ut_params->op), "failed to process sym crypto op");
- rte_pktmbuf_offload_attach(ut_params->ibuf, ut_params->ol);
+ TEST_ASSERT_EQUAL(ut_params->op->status, RTE_CRYPTO_OP_STATUS_SUCCESS,
+ "crypto op processing failed");
- /* Process crypto operation */
- ut_params->obuf = process_crypto_request(ts_params->valid_devs[0],
- ut_params->ibuf);
- TEST_ASSERT_NOT_NULL(ut_params->obuf, "failed to retrieve obuf");
+ ut_params->obuf = ut_params->op->sym->m_src;
/* Validate obuf */
TEST_ASSERT_BUFFERS_ARE_EQUAL(
ut_params->ibuf = setup_test_string(ts_params->mbuf_pool,
catch_22_quote, QUOTE_512_BYTES, 0);
- ut_params->digest = (uint8_t *)rte_pktmbuf_append(ut_params->ibuf,
- DIGEST_BYTE_LENGTH_AES_XCBC);
- TEST_ASSERT_NOT_NULL(ut_params->digest, "no room to append digest");
-
/* Setup Cipher Parameters */
- ut_params->cipher_xform.type = RTE_CRYPTO_XFORM_CIPHER;
+ ut_params->cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
ut_params->cipher_xform.next = &ut_params->auth_xform;
ut_params->cipher_xform.cipher.algo = RTE_CRYPTO_CIPHER_AES_CBC;
ut_params->cipher_xform.cipher.key.length = CIPHER_KEY_LENGTH_AES_CBC;
/* Setup HMAC Parameters */
- ut_params->auth_xform.type = RTE_CRYPTO_XFORM_AUTH;
+ ut_params->auth_xform.type = RTE_CRYPTO_SYM_XFORM_AUTH;
ut_params->auth_xform.next = NULL;
ut_params->auth_xform.auth.op = RTE_CRYPTO_AUTH_OP_GENERATE;
ut_params->auth_xform.auth.digest_length = DIGEST_BYTE_LENGTH_AES_XCBC;
/* Create Crypto session*/
- ut_params->sess = rte_cryptodev_session_create(ts_params->valid_devs[0],
+ ut_params->sess = rte_cryptodev_sym_session_create(
+ ts_params->valid_devs[0],
&ut_params->cipher_xform);
TEST_ASSERT_NOT_NULL(ut_params->sess, "Session creation failed");
/* Generate Crypto op data structure */
- ut_params->ol = rte_pktmbuf_offload_alloc(ts_params->mbuf_ol_pool,
- RTE_PKTMBUF_OL_CRYPTO);
- TEST_ASSERT_NOT_NULL(ut_params->ol,
- "Failed to allocate pktmbuf offload");
+ ut_params->op = rte_crypto_op_alloc(ts_params->op_mpool,
+ RTE_CRYPTO_OP_TYPE_SYMMETRIC);
+ TEST_ASSERT_NOT_NULL(ut_params->op,
+ "Failed to allocate symmetric crypto operation struct");
- ut_params->op = &ut_params->ol->op.crypto;
+ rte_crypto_op_attach_sym_session(ut_params->op, ut_params->sess);
+ struct rte_crypto_sym_op *sym_op = ut_params->op->sym;
- /* Set crypto operation data parameters */
- rte_crypto_op_attach_session(ut_params->op, ut_params->sess);
+ /* set crypto operation source mbuf */
+ sym_op->m_src = ut_params->ibuf;
- ut_params->op->iv.data = (uint8_t *)
- rte_pktmbuf_prepend(ut_params->ibuf,
- CIPHER_IV_LENGTH_AES_CBC);
- ut_params->op->iv.phys_addr = rte_pktmbuf_mtophys(ut_params->ibuf);
- ut_params->op->iv.length = CIPHER_IV_LENGTH_AES_CBC;
+ /* Set operation cipher parameters */
+ sym_op->cipher.iv.data = (uint8_t *)rte_pktmbuf_prepend(
+ sym_op->m_src, CIPHER_IV_LENGTH_AES_CBC);
+ sym_op->cipher.iv.phys_addr = rte_pktmbuf_mtophys(sym_op->m_src);
+ sym_op->cipher.iv.length = CIPHER_IV_LENGTH_AES_CBC;
- rte_memcpy(ut_params->op->iv.data, aes_cbc_iv,
+ rte_memcpy(sym_op->cipher.iv.data, aes_cbc_iv,
CIPHER_IV_LENGTH_AES_CBC);
- ut_params->op->data.to_cipher.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_cipher.length = QUOTE_512_BYTES;
- ut_params->op->data.to_hash.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_hash.length = QUOTE_512_BYTES;
+ sym_op->cipher.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->cipher.data.length = QUOTE_512_BYTES;
+
+ /* Set operation authentication parameters */
+ sym_op->auth.digest.data = (uint8_t *)rte_pktmbuf_append(
+ sym_op->m_src, DIGEST_BYTE_LENGTH_AES_XCBC);
+ sym_op->auth.digest.phys_addr = rte_pktmbuf_mtophys_offset(
+ sym_op->m_src,
+ CIPHER_IV_LENGTH_AES_CBC + QUOTE_512_BYTES);
+ sym_op->auth.digest.length = DIGEST_BYTE_LENGTH_AES_XCBC;
+
+ memset(sym_op->auth.digest.data, 0, DIGEST_BYTE_LENGTH_AES_XCBC);
+
+ sym_op->auth.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->auth.data.length = QUOTE_512_BYTES;
- rte_pktmbuf_offload_attach(ut_params->ibuf, ut_params->ol);
/* Process crypto operation */
- ut_params->obuf = process_crypto_request(ts_params->valid_devs[0],
- ut_params->ibuf);
- TEST_ASSERT_NOT_NULL(ut_params->obuf, "failed to retrieve obuf");
+ ut_params->op = process_crypto_request(ts_params->valid_devs[0],
+ ut_params->op);
+ TEST_ASSERT_NOT_NULL(ut_params->op, "failed to process sym crypto op");
+
+ TEST_ASSERT_EQUAL(ut_params->op->status, RTE_CRYPTO_OP_STATUS_SUCCESS,
+ "crypto op processing failed");
/* Validate obuf */
TEST_ASSERT_BUFFERS_ARE_EQUAL(
- rte_pktmbuf_mtod(ut_params->obuf, uint8_t *) +
- CIPHER_IV_LENGTH_AES_CBC,
+ rte_pktmbuf_mtod_offset(ut_params->op->sym->m_src,
+ uint8_t *, CIPHER_IV_LENGTH_AES_CBC),
catch_22_quote_2_512_bytes_AES_CBC_ciphertext,
QUOTE_512_BYTES,
"Ciphertext data not as expected");
+
TEST_ASSERT_BUFFERS_ARE_EQUAL(
- rte_pktmbuf_mtod(ut_params->obuf, uint8_t *) +
- CIPHER_IV_LENGTH_AES_CBC + QUOTE_512_BYTES,
+ rte_pktmbuf_mtod_offset(
+ ut_params->op->sym->m_src, uint8_t *,
+ CIPHER_IV_LENGTH_AES_CBC +
+ QUOTE_512_BYTES),
catch_22_quote_2_512_bytes_HMAC_AES_XCBC_digest,
DIGEST_BYTE_LENGTH_AES_XCBC,
"Generated digest data not as expected");
(const char *)catch_22_quote_2_512_bytes_AES_CBC_ciphertext,
QUOTE_512_BYTES, 0);
- ut_params->digest = (uint8_t *)rte_pktmbuf_append(ut_params->ibuf,
- DIGEST_BYTE_LENGTH_AES_XCBC);
- TEST_ASSERT_NOT_NULL(ut_params->digest, "no room to append digest");
-
- rte_memcpy(ut_params->digest,
- catch_22_quote_2_512_bytes_HMAC_AES_XCBC_digest,
- DIGEST_BYTE_LENGTH_AES_XCBC);
-
/* Setup Cipher Parameters */
- ut_params->cipher_xform.type = RTE_CRYPTO_XFORM_CIPHER;
+ ut_params->cipher_xform.type = RTE_CRYPTO_SYM_XFORM_CIPHER;
ut_params->cipher_xform.next = NULL;
ut_params->cipher_xform.cipher.algo = RTE_CRYPTO_CIPHER_AES_CBC;
ut_params->cipher_xform.cipher.key.length = CIPHER_KEY_LENGTH_AES_CBC;
/* Setup HMAC Parameters */
- ut_params->auth_xform.type = RTE_CRYPTO_XFORM_AUTH;
+ ut_params->auth_xform.type = RTE_CRYPTO_SYM_XFORM_AUTH;
ut_params->auth_xform.next = &ut_params->cipher_xform;
ut_params->auth_xform.auth.op = RTE_CRYPTO_AUTH_OP_VERIFY;
ut_params->auth_xform.auth.digest_length = DIGEST_BYTE_LENGTH_AES_XCBC;
/* Create Crypto session*/
- ut_params->sess = rte_cryptodev_session_create(ts_params->valid_devs[0],
- &ut_params->auth_xform);
+ ut_params->sess =
+ rte_cryptodev_sym_session_create(ts_params->valid_devs[0],
+ &ut_params->auth_xform);
TEST_ASSERT_NOT_NULL(ut_params->sess, "Session creation failed");
/* Generate Crypto op data structure */
- ut_params->ol = rte_pktmbuf_offload_alloc(ts_params->mbuf_ol_pool,
- RTE_PKTMBUF_OL_CRYPTO);
- TEST_ASSERT_NOT_NULL(ut_params->ol,
- "Failed to allocate pktmbuf offload");
+ ut_params->op = rte_crypto_op_alloc(ts_params->op_mpool,
+ RTE_CRYPTO_OP_TYPE_SYMMETRIC);
+ TEST_ASSERT_NOT_NULL(ut_params->op,
+ "Failed to allocate symmetric crypto operation struct");
- ut_params->op = &ut_params->ol->op.crypto;
+ /* Set crypto operation data parameters */
+ rte_crypto_op_attach_sym_session(ut_params->op, ut_params->sess);
+ struct rte_crypto_sym_op *sym_op = ut_params->op->sym;
- /* Set crypto operation data parameters */
- rte_crypto_op_attach_session(ut_params->op, ut_params->sess);
+ /* set crypto operation source mbuf */
+ sym_op->m_src = ut_params->ibuf;
- ut_params->op->iv.data = (uint8_t *)rte_pktmbuf_prepend(ut_params->ibuf,
- CIPHER_IV_LENGTH_AES_CBC);
- ut_params->op->iv.phys_addr = rte_pktmbuf_mtophys(ut_params->ibuf);
- ut_params->op->iv.length = CIPHER_IV_LENGTH_AES_CBC;
- rte_memcpy(ut_params->op->iv.data, aes_cbc_iv,
+ sym_op->auth.digest.data = (uint8_t *)rte_pktmbuf_append(
+ ut_params->ibuf, DIGEST_BYTE_LENGTH_AES_XCBC);
+ TEST_ASSERT_NOT_NULL(sym_op->auth.digest.data,
+ "no room to append digest");
+
+ sym_op->auth.digest.phys_addr = rte_pktmbuf_mtophys_offset(
+ ut_params->ibuf, QUOTE_512_BYTES);
+ sym_op->auth.digest.length = DIGEST_BYTE_LENGTH_AES_XCBC;
+
+ rte_memcpy(sym_op->auth.digest.data,
+ catch_22_quote_2_512_bytes_HMAC_AES_XCBC_digest,
+ DIGEST_BYTE_LENGTH_AES_XCBC);
+
+ sym_op->auth.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->auth.data.length = QUOTE_512_BYTES;
+
+ sym_op->cipher.iv.data = (uint8_t *)rte_pktmbuf_prepend(
+ ut_params->ibuf, CIPHER_IV_LENGTH_AES_CBC);
+ sym_op->cipher.iv.phys_addr = rte_pktmbuf_mtophys(ut_params->ibuf);
+ sym_op->cipher.iv.length = CIPHER_IV_LENGTH_AES_CBC;
+
+ rte_memcpy(sym_op->cipher.iv.data, aes_cbc_iv,
CIPHER_IV_LENGTH_AES_CBC);
- ut_params->op->data.to_cipher.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_cipher.length = QUOTE_512_BYTES;
- ut_params->op->data.to_hash.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_hash.length = QUOTE_512_BYTES;
- rte_pktmbuf_offload_attach(ut_params->ibuf, ut_params->ol);
+ sym_op->cipher.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->cipher.data.length = QUOTE_512_BYTES;
/* Process crypto operation */
- ut_params->obuf = process_crypto_request(ts_params->valid_devs[0],
- ut_params->ibuf);
- TEST_ASSERT_NOT_NULL(ut_params->obuf, "failed to retrieve obuf");
+ TEST_ASSERT_NOT_NULL(process_crypto_request(ts_params->valid_devs[0],
+ ut_params->op), "failed to process sym crypto op");
+
+ TEST_ASSERT_EQUAL(ut_params->op->status, RTE_CRYPTO_OP_STATUS_SUCCESS,
+ "crypto op processing failed");
+
+ ut_params->obuf = ut_params->op->sym->m_src;
/* Validate obuf */
TEST_ASSERT_BUFFERS_ARE_EQUAL(
struct crypto_unittest_params *ut_params = &unittest_params;
struct rte_cryptodev_info dev_info;
- struct rte_cryptodev_session **sessions;
+ struct rte_cryptodev_sym_session **sessions;
uint16_t i;
rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info);
- sessions = rte_malloc(NULL, (sizeof(struct rte_cryptodev_session *) *
- dev_info.max_nb_sessions) + 1, 0);
+ sessions = rte_malloc(NULL,
+ (sizeof(struct rte_cryptodev_sym_session *) *
+ dev_info.sym.max_nb_sessions) + 1, 0);
/* Create multiple crypto sessions*/
- for (i = 0; i < dev_info.max_nb_sessions; i++) {
- sessions[i] = rte_cryptodev_session_create(
+ for (i = 0; i < dev_info.sym.max_nb_sessions; i++) {
+ sessions[i] = rte_cryptodev_sym_session_create(
ts_params->valid_devs[0],
&ut_params->auth_xform);
TEST_ASSERT_NOT_NULL(sessions[i],
}
/* Next session create should fail */
- sessions[i] = rte_cryptodev_session_create(ts_params->valid_devs[0],
+ sessions[i] = rte_cryptodev_sym_session_create(ts_params->valid_devs[0],
&ut_params->auth_xform);
TEST_ASSERT_NULL(sessions[i],
"Session creation succeeded unexpectedly!");
- for (i = 0; i < dev_info.max_nb_sessions; i++)
- rte_cryptodev_session_free(ts_params->valid_devs[0],
+ for (i = 0; i < dev_info.sym.max_nb_sessions; i++)
+ rte_cryptodev_sym_session_free(ts_params->valid_devs[0],
sessions[i]);
rte_free(sessions);
/* Create multiple crypto sessions*/
- ut_params->sess = rte_cryptodev_session_create(
+ ut_params->sess = rte_cryptodev_sym_session_create(
ts_params->valid_devs[0], &ut_params->auth_xform);
TEST_ASSERT_NOT_NULL(ut_params->sess, "Session creation failed");
DIGEST_BYTE_LENGTH_SHA512);
/* Generate Crypto op data structure */
- ut_params->ol = rte_pktmbuf_offload_alloc(ts_params->mbuf_ol_pool,
- RTE_PKTMBUF_OL_CRYPTO);
- TEST_ASSERT_NOT_NULL(ut_params->ol,
- "Failed to allocate pktmbuf offload");
-
- ut_params->op = &ut_params->ol->op.crypto;
+ ut_params->op = rte_crypto_op_alloc(ts_params->op_mpool,
+ RTE_CRYPTO_OP_TYPE_SYMMETRIC);
+ TEST_ASSERT_NOT_NULL(ut_params->op,
+ "Failed to allocate symmetric crypto operation struct");
/* Set crypto operation data parameters */
- rte_crypto_op_attach_session(ut_params->op, ut_params->sess);
+ rte_crypto_op_attach_sym_session(ut_params->op, ut_params->sess);
+
+ struct rte_crypto_sym_op *sym_op = ut_params->op->sym;
+
+ /* set crypto operation source mbuf */
+ sym_op->m_src = ut_params->ibuf;
+ sym_op->m_dst = dst_m;
- ut_params->op->digest.data = ut_params->digest;
- ut_params->op->digest.phys_addr = rte_pktmbuf_mtophys_offset(
+ sym_op->auth.digest.data = ut_params->digest;
+ sym_op->auth.digest.phys_addr = rte_pktmbuf_mtophys_offset(
ut_params->ibuf, QUOTE_512_BYTES);
- ut_params->op->digest.length = DIGEST_BYTE_LENGTH_SHA512;
+ sym_op->auth.digest.length = DIGEST_BYTE_LENGTH_SHA512;
- ut_params->op->iv.data = (uint8_t *)rte_pktmbuf_prepend(
+ sym_op->auth.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->auth.data.length = QUOTE_512_BYTES;
+
+
+ sym_op->cipher.iv.data = (uint8_t *)rte_pktmbuf_prepend(
ut_params->ibuf, CIPHER_IV_LENGTH_AES_CBC);
- ut_params->op->iv.phys_addr = rte_pktmbuf_mtophys_offset(
+ sym_op->cipher.iv.phys_addr = rte_pktmbuf_mtophys_offset(
ut_params->ibuf, 0);
- ut_params->op->iv.length = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->cipher.iv.length = CIPHER_IV_LENGTH_AES_CBC;
- rte_memcpy(ut_params->op->iv.data, aes_cbc_iv,
+ rte_memcpy(sym_op->cipher.iv.data, aes_cbc_iv,
CIPHER_IV_LENGTH_AES_CBC);
- ut_params->op->data.to_cipher.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_cipher.length = QUOTE_512_BYTES;
-
- ut_params->op->data.to_hash.offset = CIPHER_IV_LENGTH_AES_CBC;
- ut_params->op->data.to_hash.length = QUOTE_512_BYTES;
-
- ut_params->op->dst.m = dst_m;
- ut_params->op->dst.offset = 0;
-
- rte_pktmbuf_offload_attach(ut_params->ibuf, ut_params->ol);
+ sym_op->cipher.data.offset = CIPHER_IV_LENGTH_AES_CBC;
+ sym_op->cipher.data.length = QUOTE_512_BYTES;
/* Process crypto operation */
- ut_params->obuf = process_crypto_request(ts_params->valid_devs[0],
- ut_params->ibuf);
- TEST_ASSERT_NOT_NULL(ut_params->obuf, "failed to retrieve obuf");
+ ut_params->op = process_crypto_request(ts_params->valid_devs[0],
+ ut_params->op);
+ TEST_ASSERT_NOT_NULL(ut_params->op, "no crypto operation returned");
+
+ TEST_ASSERT_EQUAL(ut_params->op->status, RTE_CRYPTO_OP_STATUS_SUCCESS,
+ "crypto operation processing failed");
/* Validate obuf */
TEST_ASSERT_BUFFERS_ARE_EQUAL(
- rte_pktmbuf_mtod(ut_params->op->dst.m, char *),
+ rte_pktmbuf_mtod(ut_params->op->sym->m_dst, char *),
catch_22_quote,
QUOTE_512_BYTES,
"Plaintext data not as expected");
static int
test_cryptodev_qat(void /*argv __rte_unused, int argc __rte_unused*/)
{
- gbl_cryptodev_type = RTE_CRYPTODEV_QAT_PMD;
+ gbl_cryptodev_type = RTE_CRYPTODEV_QAT_SYM_PMD;
return unit_test_suite_runner(&cryptodev_qat_testsuite);
}
static struct test_command cryptodev_qat_cmd = {