crypto: Crypto set handler API to support set all as CLI
Type: improvement Signed-off-by: Yulong Pei <yulong.pei@intel.com> Change-Id: I43556f8c76c7aae64d9c927e1fda3c1774d7e49d
This commit is contained in:
Yulong Pei
committed by
Andrew Yourtchenko
parent
b3a8f4e350
commit
8c91b2ae2b
@ -41,7 +41,7 @@ autoreply define crypto_set_async_dispatch
|
||||
vl_api_crypto_dispatch_mode_t mode;
|
||||
};
|
||||
|
||||
/** \brief crypto: use polling or interrupt dispatch
|
||||
/** \brief crypto: set crypto handler
|
||||
@param client_index - opaque cookie to identify the sender
|
||||
@param context - sender context, to match reply w/ request
|
||||
@param alg_name - Name of the algorithm to add
|
||||
|
@ -54,6 +54,7 @@ vl_api_crypto_set_async_dispatch_t_handler (vl_api_crypto_set_async_dispatch_t
|
||||
static void
|
||||
vl_api_crypto_set_handler_t_handler (vl_api_crypto_set_handler_t * mp)
|
||||
{
|
||||
vnet_crypto_main_t *cm = &crypto_main;
|
||||
vl_api_crypto_set_handler_reply_t *rmp;
|
||||
int rv = 0;
|
||||
char *engine;
|
||||
@ -64,10 +65,42 @@ vl_api_crypto_set_handler_t_handler (vl_api_crypto_set_handler_t * mp)
|
||||
alg_name = (char *) mp->alg_name;
|
||||
oct = (crypto_op_class_type_t) mp->oct;
|
||||
|
||||
if (mp->is_async)
|
||||
rv = vnet_crypto_set_async_handler2 (alg_name, engine);
|
||||
if (strcmp ("all", alg_name) == 0)
|
||||
{
|
||||
if (mp->is_async)
|
||||
{
|
||||
char *key;
|
||||
u8 *value;
|
||||
|
||||
/* *INDENT-OFF* */
|
||||
hash_foreach_mem (key, value, cm->async_alg_index_by_name,
|
||||
({
|
||||
(void) value;
|
||||
rv += vnet_crypto_set_async_handler2 (key, engine);
|
||||
}));
|
||||
/* *INDENT-ON* */
|
||||
}
|
||||
else
|
||||
{
|
||||
char *key;
|
||||
u8 *value;
|
||||
|
||||
/* *INDENT-OFF* */
|
||||
hash_foreach_mem (key, value, cm->alg_index_by_name,
|
||||
({
|
||||
(void) value;
|
||||
rv += vnet_crypto_set_handler2 (key, engine, oct);
|
||||
}));
|
||||
/* *INDENT-ON* */
|
||||
}
|
||||
}
|
||||
else
|
||||
rv = vnet_crypto_set_handler2 (alg_name, engine, oct);
|
||||
{
|
||||
if (mp->is_async)
|
||||
rv = vnet_crypto_set_async_handler2 (alg_name, engine);
|
||||
else
|
||||
rv = vnet_crypto_set_handler2 (alg_name, engine, oct);
|
||||
}
|
||||
|
||||
REPLY_MACRO (VL_API_CRYPTO_SET_HANDLER_REPLY);
|
||||
}
|
||||
|
Reference in New Issue
Block a user