@@ -271,11 +271,8 @@ typedef struct odp_crypto_session_param_t {
*/
odp_bool_t auth_cipher_text;
- /** Preferred sync vs. async
- *
- * @deprecated no-op now, odp_crypto_operation() will always process
- * data in non-posted mode */
- odp_crypto_op_mode_t ODP_DEPRECATE(pref_mode);
+ /** Preferred sync vs. async for odp_crypto_operation() */
+ odp_crypto_op_mode_t pref_mode;
/** Operation mode when using packet interface: sync or async */
odp_crypto_op_mode_t op_mode;
@@ -340,11 +337,8 @@ typedef struct odp_crypto_op_param_t {
/** Session handle from creation */
odp_crypto_session_t session;
- /** User context
- *
- * @deprecated No need to pass context around sync calls
- * */
- void *ODP_DEPRECATE(ctx);
+ /** User context */
+ void *ctx;
/** Input packet
*
@@ -504,11 +498,8 @@ typedef struct odp_crypto_op_result {
/** Request completed successfully */
odp_bool_t ok;
- /** User context from request
- *
- * @deprecated No need to pass context around sync calls
- * */
- void *ODP_DEPRECATE(ctx);
+ /** User context from request */
+ void *ctx;
/** Output packet */
odp_packet_t pkt;
@@ -692,8 +683,7 @@ int odp_crypto_session_destroy(odp_crypto_session_t session);
*
* @return crypto completion handle
*/
-ODP_DEPRECATE(odp_crypto_compl_t) ODP_DEPRECATE(odp_crypto_compl_from_event)(
- odp_event_t ev);
+odp_crypto_compl_t odp_crypto_compl_from_event(odp_event_t ev);
/**
* Convert crypto completion handle to event handle
@@ -702,16 +692,14 @@ ODP_DEPRECATE(odp_crypto_compl_t) ODP_DEPRECATE(odp_crypto_compl_from_event)(
*
* @return Event handle
*/
-odp_event_t ODP_DEPRECATE(odp_crypto_compl_to_event)(
- ODP_DEPRECATE(odp_crypto_compl_t) completion_event);
+odp_event_t odp_crypto_compl_to_event(odp_crypto_compl_t completion_event);
/**
* Release crypto completion event
*
* @param completion_event Completion event we are done accessing
*/
-void ODP_DEPRECATE(odp_crypto_compl_free)(
- ODP_DEPRECATE(odp_crypto_compl_t) completion_event);
+void odp_crypto_compl_free(odp_crypto_compl_t completion_event);
/**
* Crypto per packet operation
@@ -739,9 +727,8 @@ int odp_crypto_operation(odp_crypto_op_param_t *param,
* @param completion_event Event containing operation results
* @param result Pointer to result structure
*/
-void ODP_DEPRECATE(odp_crypto_compl_result)(
- ODP_DEPRECATE(odp_crypto_compl_t) completion_event,
- odp_crypto_op_result_t *result);
+void odp_crypto_compl_result(odp_crypto_compl_t completion_event,
+ odp_crypto_op_result_t *result);
/**
* Get printable value for an odp_crypto_session_t
@@ -767,8 +754,7 @@ uint64_t odp_crypto_session_to_u64(odp_crypto_session_t hdl);
* to enable applications to generate a printable value that represents
* an odp_crypto_compl_t handle.
*/
-uint64_t ODP_DEPRECATE(odp_crypto_compl_to_u64)(
- ODP_DEPRECATE(odp_crypto_compl_t) hdl);
+uint64_t odp_crypto_compl_to_u64(odp_crypto_compl_t hdl);
/**
* Initialize crypto session parameters
@@ -11,8 +11,6 @@
extern "C" {
#endif
-#include <odp/api/deprecated.h>
-
#include <stdint.h>
/** @internal Dummy type for strong typing */
@@ -25,7 +23,7 @@ typedef struct { char dummy; /**< @internal Dummy */ } _odp_abi_crypto_compl_t;
#define ODP_CRYPTO_SESSION_INVALID (0xffffffffffffffffULL)
typedef uint64_t odp_crypto_session_t;
-typedef _odp_abi_crypto_compl_t *ODP_DEPRECATE(odp_crypto_compl_t);
+typedef _odp_abi_crypto_compl_t *odp_crypto_compl_t;
/**
* @}
@@ -11,8 +11,6 @@
extern "C" {
#endif
-#include <odp/api/deprecated.h>
-
#include <stdint.h>
/** @internal Dummy type for strong typing */
@@ -30,7 +28,7 @@ typedef enum odp_event_type_t {
ODP_EVENT_BUFFER = 1,
ODP_EVENT_PACKET = 2,
ODP_EVENT_TIMEOUT = 3,
- ODP_DEPRECATE(ODP_EVENT_CRYPTO_COMPL) = 4,
+ ODP_EVENT_CRYPTO_COMPL = 4,
ODP_EVENT_IPSEC_STATUS = 5
} odp_event_type_t;
@@ -22,7 +22,6 @@ extern "C" {
#if ODP_ABI_COMPAT == 1
#include <odp/api/abi/crypto.h>
#else
-#include <odp/api/deprecated.h>
/** @ingroup odp_crypto
* @{
@@ -31,7 +30,7 @@ extern "C" {
#define ODP_CRYPTO_SESSION_INVALID (0xffffffffffffffffULL)
typedef uint64_t odp_crypto_session_t;
-typedef ODP_HANDLE_T(ODP_DEPRECATE(odp_crypto_compl_t));
+typedef ODP_HANDLE_T(odp_crypto_compl_t);
/**
* @}
@@ -23,7 +23,6 @@ extern "C" {
#include <odp/api/abi/event.h>
#else
-#include <odp/api/deprecated.h>
#include <odp/api/std_types.h>
#include <odp/api/plat/strong_types.h>
@@ -39,7 +38,7 @@ typedef enum odp_event_type_t {
ODP_EVENT_BUFFER = 1,
ODP_EVENT_PACKET = 2,
ODP_EVENT_TIMEOUT = 3,
- ODP_DEPRECATE(ODP_EVENT_CRYPTO_COMPL) = 4,
+ ODP_EVENT_CRYPTO_COMPL = 4,
ODP_EVENT_IPSEC_STATUS = 5
} odp_event_type_t;
@@ -881,9 +881,7 @@ odp_crypto_operation(odp_crypto_op_param_t *param,
ODP_EVENT_PACKET_BASIC);
/* Fill in result */
-#if ODP_DEPRECATED_API
local_result.ctx = param->ctx;
-#endif
local_result.pkt = out_pkt;
local_result.cipher_status = packet_result.cipher_status;
local_result.auth_status = packet_result.auth_status;
@@ -1030,7 +1028,6 @@ int32_t odp_random_test_data(uint8_t *buf, uint32_t len, uint64_t *seed)
return len;
}
-#if ODP_DEPRECATED_API
odp_crypto_compl_t odp_crypto_compl_from_event(odp_event_t ev)
{
/* This check not mandated by the API specification */
@@ -1067,7 +1064,6 @@ uint64_t odp_crypto_compl_to_u64(odp_crypto_compl_t hdl)
{
return _odp_pri(hdl);
}
-#endif
void odp_crypto_session_param_init(odp_crypto_session_param_t *param)
{
@@ -46,11 +46,9 @@ void odp_event_free(odp_event_t event)
case ODP_EVENT_TIMEOUT:
odp_timeout_free(odp_timeout_from_event(event));
break;
-#if ODP_DEPRECATED_API
case ODP_EVENT_CRYPTO_COMPL:
odp_crypto_compl_free(odp_crypto_compl_from_event(event));
break;
-#endif
default:
ODP_ABORT("Invalid event type: %d\n", odp_event_type(event));
}
@@ -427,6 +427,7 @@ create_session_from_config(odp_crypto_session_t *session,
odp_crypto_session_param_init(¶ms);
memcpy(¶ms, &config->session, sizeof(odp_crypto_session_param_t));
params.op = ODP_CRYPTO_OP_ENCODE;
+ params.pref_mode = ODP_CRYPTO_SYNC;
/* Lookup the packet pool */
pkt_pool = odp_pool_lookup("packet_pool");
@@ -15,6 +15,8 @@
odp_suiteinfo_t crypto_suites[] = {
{ODP_CRYPTO_SYNC_INP, crypto_suite_sync_init,
crypto_suite_term, crypto_suite},
+ {ODP_CRYPTO_ASYNC_INP, crypto_suite_async_init,
+ crypto_suite_term, crypto_suite},
{ODP_CRYPTO_PACKET_SYNC_INP, crypto_suite_packet_sync_init,
crypto_suite_term, crypto_suite},
{ODP_CRYPTO_PACKET_ASYNC_INP, crypto_suite_packet_async_init,
@@ -16,6 +16,7 @@
struct suite_context_s {
odp_bool_t packet;
odp_crypto_op_mode_t op_mode;
+ odp_crypto_op_mode_t pref_mode;
odp_pool_t pool;
odp_queue_t queue;
};
@@ -81,6 +82,7 @@ static int alg_op(odp_packet_t pkt,
op_params.session = session;
op_params.pkt = pkt;
op_params.out_pkt = pkt;
+ op_params.ctx = (void *)0xdeadbeef;
if (cipher_range) {
op_params.cipher_range = *cipher_range;
@@ -109,8 +111,31 @@ static int alg_op(odp_packet_t pkt,
return rc;
}
- CU_ASSERT(posted == 0);
+ if (posted) {
+ odp_event_t event;
+ odp_crypto_compl_t compl_event;
+
+ /* Poll completion queue for results */
+ do {
+ event = odp_queue_deq(suite_context.queue);
+ } while (event == ODP_EVENT_INVALID);
+
+ CU_ASSERT(ODP_EVENT_CRYPTO_COMPL == odp_event_type(event));
+ CU_ASSERT(ODP_EVENT_NO_SUBTYPE == odp_event_subtype(event));
+ CU_ASSERT(ODP_EVENT_CRYPTO_COMPL ==
+ odp_event_types(event, &subtype));
+ CU_ASSERT(ODP_EVENT_NO_SUBTYPE == subtype);
+
+ compl_event = odp_crypto_compl_from_event(event);
+ CU_ASSERT(odp_crypto_compl_to_u64(compl_event) ==
+ odp_crypto_compl_to_u64(
+ odp_crypto_compl_from_event(event)));
+ odp_crypto_compl_result(compl_event, &result);
+ odp_crypto_compl_free(compl_event);
+ }
+
CU_ASSERT(result.pkt == pkt);
+ CU_ASSERT(result.ctx == (void *)0xdeadbeef);
CU_ASSERT(ODP_EVENT_PACKET ==
odp_event_type(odp_packet_to_event(result.pkt)));
CU_ASSERT(ODP_EVENT_PACKET_BASIC ==
@@ -403,6 +428,7 @@ static void alg_test(odp_crypto_op_t op,
ses_params.op = op;
ses_params.auth_cipher_text = false;
ses_params.op_mode = suite_context.op_mode;
+ ses_params.pref_mode = suite_context.pref_mode;
ses_params.cipher_alg = cipher_alg;
ses_params.auth_alg = auth_alg;
ses_params.compl_queue = suite_context.queue;
@@ -1678,6 +1704,20 @@ int crypto_suite_sync_init(void)
return -1;
suite_context.queue = ODP_QUEUE_INVALID;
+ suite_context.pref_mode = ODP_CRYPTO_SYNC;
+ return 0;
+}
+
+int crypto_suite_async_init(void)
+{
+ suite_context.pool = odp_pool_lookup("packet_pool");
+ if (suite_context.pool == ODP_POOL_INVALID)
+ return -1;
+ suite_context.queue = odp_queue_lookup("crypto-out");
+ if (suite_context.queue == ODP_QUEUE_INVALID)
+ return -1;
+
+ suite_context.pref_mode = ODP_CRYPTO_ASYNC;
return 0;
}
@@ -10,6 +10,7 @@
/* Suite names */
#define ODP_CRYPTO_SYNC_INP "odp_crypto_sync_inp"
+#define ODP_CRYPTO_ASYNC_INP "odp_crypto_async_inp"
#define ODP_CRYPTO_PACKET_SYNC_INP "odp_crypto_packet_sync_inp"
#define ODP_CRYPTO_PACKET_ASYNC_INP "odp_crypto_packet_async_inp"
@@ -17,6 +18,7 @@
extern odp_testinfo_t crypto_suite[];
int crypto_suite_sync_init(void);
+int crypto_suite_async_init(void);
int crypto_suite_packet_sync_init(void);
int crypto_suite_packet_async_init(void);
int crypto_suite_term(void);