cryptodev: uninline parameter parsing
There is no need to have this parsing inlined in the header. It brings kvargs dependency to every crypto drivers. The functions are moved into rte_cryptodev.c. Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
This commit is contained in:
parent
2fa5e196d5
commit
f3e764fa2f
@ -38,7 +38,6 @@
|
||||
#include <rte_dev.h>
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_cpuflags.h>
|
||||
#include <rte_kvargs.h>
|
||||
|
||||
#include "rte_kasumi_pmd_private.h"
|
||||
|
||||
|
@ -56,6 +56,5 @@ DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += lib/librte_eal
|
||||
DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += lib/librte_mbuf
|
||||
DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += lib/librte_cryptodev
|
||||
DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += lib/librte_ring
|
||||
DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += lib/librte_kvargs
|
||||
|
||||
include $(RTE_SDK)/mk/rte.lib.mk
|
||||
|
@ -38,7 +38,6 @@
|
||||
#include <rte_dev.h>
|
||||
#include <rte_malloc.h>
|
||||
#include <rte_cpuflags.h>
|
||||
#include <rte_kvargs.h>
|
||||
|
||||
#include "rte_snow3g_pmd_private.h"
|
||||
|
||||
|
@ -102,6 +102,97 @@ struct rte_cryptodev_callback {
|
||||
uint32_t active; /**< Callback is executing */
|
||||
};
|
||||
|
||||
#define RTE_CRYPTODEV_VDEV_MAX_NB_QP_ARG ("max_nb_queue_pairs")
|
||||
#define RTE_CRYPTODEV_VDEV_MAX_NB_SESS_ARG ("max_nb_sessions")
|
||||
#define RTE_CRYPTODEV_VDEV_SOCKET_ID ("socket_id")
|
||||
|
||||
static const char *cryptodev_vdev_valid_params[] = {
|
||||
RTE_CRYPTODEV_VDEV_MAX_NB_QP_ARG,
|
||||
RTE_CRYPTODEV_VDEV_MAX_NB_SESS_ARG,
|
||||
RTE_CRYPTODEV_VDEV_SOCKET_ID
|
||||
};
|
||||
|
||||
static uint8_t
|
||||
number_of_sockets(void)
|
||||
{
|
||||
int sockets = 0;
|
||||
int i;
|
||||
const struct rte_memseg *ms = rte_eal_get_physmem_layout();
|
||||
|
||||
for (i = 0; ((i < RTE_MAX_MEMSEG) && (ms[i].addr != NULL)); i++) {
|
||||
if (sockets < ms[i].socket_id)
|
||||
sockets = ms[i].socket_id;
|
||||
}
|
||||
|
||||
/* Number of sockets = maximum socket_id + 1 */
|
||||
return ++sockets;
|
||||
}
|
||||
|
||||
/** Parse integer from integer argument */
|
||||
static int
|
||||
parse_integer_arg(const char *key __rte_unused,
|
||||
const char *value, void *extra_args)
|
||||
{
|
||||
int *i = (int *) extra_args;
|
||||
|
||||
*i = atoi(value);
|
||||
if (*i < 0) {
|
||||
CDEV_LOG_ERR("Argument has to be positive.");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
rte_cryptodev_parse_vdev_init_params(struct rte_crypto_vdev_init_params *params,
|
||||
const char *input_args)
|
||||
{
|
||||
struct rte_kvargs *kvlist;
|
||||
int ret;
|
||||
|
||||
if (params == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
if (input_args) {
|
||||
kvlist = rte_kvargs_parse(input_args,
|
||||
cryptodev_vdev_valid_params);
|
||||
if (kvlist == NULL)
|
||||
return -1;
|
||||
|
||||
ret = rte_kvargs_process(kvlist,
|
||||
RTE_CRYPTODEV_VDEV_MAX_NB_QP_ARG,
|
||||
&parse_integer_arg,
|
||||
¶ms->max_nb_queue_pairs);
|
||||
if (ret < 0)
|
||||
goto free_kvlist;
|
||||
|
||||
ret = rte_kvargs_process(kvlist,
|
||||
RTE_CRYPTODEV_VDEV_MAX_NB_SESS_ARG,
|
||||
&parse_integer_arg,
|
||||
¶ms->max_nb_sessions);
|
||||
if (ret < 0)
|
||||
goto free_kvlist;
|
||||
|
||||
ret = rte_kvargs_process(kvlist, RTE_CRYPTODEV_VDEV_SOCKET_ID,
|
||||
&parse_integer_arg,
|
||||
¶ms->socket_id);
|
||||
if (ret < 0)
|
||||
goto free_kvlist;
|
||||
|
||||
if (params->socket_id >= number_of_sockets()) {
|
||||
CDEV_LOG_ERR("Invalid socket id specified to create "
|
||||
"the virtual crypto device on");
|
||||
goto free_kvlist;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
free_kvlist:
|
||||
rte_kvargs_free(kvlist);
|
||||
return ret;
|
||||
}
|
||||
|
||||
const char *
|
||||
rte_cryptodev_get_feature_name(uint64_t flag)
|
||||
|
@ -300,48 +300,6 @@ struct rte_crypto_vdev_init_params {
|
||||
uint8_t socket_id;
|
||||
};
|
||||
|
||||
#define RTE_CRYPTODEV_VDEV_MAX_NB_QP_ARG ("max_nb_queue_pairs")
|
||||
#define RTE_CRYPTODEV_VDEV_MAX_NB_SESS_ARG ("max_nb_sessions")
|
||||
#define RTE_CRYPTODEV_VDEV_SOCKET_ID ("socket_id")
|
||||
|
||||
static const char *cryptodev_vdev_valid_params[] = {
|
||||
RTE_CRYPTODEV_VDEV_MAX_NB_QP_ARG,
|
||||
RTE_CRYPTODEV_VDEV_MAX_NB_SESS_ARG,
|
||||
RTE_CRYPTODEV_VDEV_SOCKET_ID
|
||||
};
|
||||
|
||||
static inline uint8_t
|
||||
number_of_sockets(void)
|
||||
{
|
||||
int sockets = 0;
|
||||
int i;
|
||||
const struct rte_memseg *ms = rte_eal_get_physmem_layout();
|
||||
|
||||
for (i = 0; ((i < RTE_MAX_MEMSEG) && (ms[i].addr != NULL)); i++) {
|
||||
if (sockets < ms[i].socket_id)
|
||||
sockets = ms[i].socket_id;
|
||||
}
|
||||
|
||||
/* Number of sockets = maximum socket_id + 1 */
|
||||
return ++sockets;
|
||||
}
|
||||
|
||||
/** Parse integer from integer argument */
|
||||
static inline int
|
||||
__rte_cryptodev_parse_integer_arg(const char *key __rte_unused,
|
||||
const char *value, void *extra_args)
|
||||
{
|
||||
int *i = (int *) extra_args;
|
||||
|
||||
*i = atoi(value);
|
||||
if (*i < 0) {
|
||||
CDEV_LOG_ERR("Argument has to be positive.");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse virtual device initialisation parameters input arguments
|
||||
* @internal
|
||||
@ -353,55 +311,10 @@ __rte_cryptodev_parse_integer_arg(const char *key __rte_unused,
|
||||
* 0 on successful parse
|
||||
* <0 on failure to parse
|
||||
*/
|
||||
static inline int
|
||||
rte_cryptodev_parse_vdev_init_params(struct rte_crypto_vdev_init_params *params,
|
||||
const char *input_args)
|
||||
{
|
||||
struct rte_kvargs *kvlist;
|
||||
int ret;
|
||||
|
||||
if (params == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
if (input_args) {
|
||||
kvlist = rte_kvargs_parse(input_args,
|
||||
cryptodev_vdev_valid_params);
|
||||
if (kvlist == NULL)
|
||||
return -1;
|
||||
|
||||
ret = rte_kvargs_process(kvlist,
|
||||
RTE_CRYPTODEV_VDEV_MAX_NB_QP_ARG,
|
||||
&__rte_cryptodev_parse_integer_arg,
|
||||
¶ms->max_nb_queue_pairs);
|
||||
if (ret < 0)
|
||||
goto free_kvlist;
|
||||
|
||||
ret = rte_kvargs_process(kvlist,
|
||||
RTE_CRYPTODEV_VDEV_MAX_NB_SESS_ARG,
|
||||
&__rte_cryptodev_parse_integer_arg,
|
||||
¶ms->max_nb_sessions);
|
||||
if (ret < 0)
|
||||
goto free_kvlist;
|
||||
|
||||
ret = rte_kvargs_process(kvlist, RTE_CRYPTODEV_VDEV_SOCKET_ID,
|
||||
&__rte_cryptodev_parse_integer_arg,
|
||||
¶ms->socket_id);
|
||||
if (ret < 0)
|
||||
goto free_kvlist;
|
||||
|
||||
if (params->socket_id >= number_of_sockets()) {
|
||||
CDEV_LOG_ERR("Invalid socket id specified to create "
|
||||
"the virtual crypto device on");
|
||||
goto free_kvlist;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
free_kvlist:
|
||||
rte_kvargs_free(kvlist);
|
||||
return ret;
|
||||
}
|
||||
int
|
||||
rte_cryptodev_parse_vdev_init_params(
|
||||
struct rte_crypto_vdev_init_params *params,
|
||||
const char *input_args);
|
||||
|
||||
/**
|
||||
* Create a virtual crypto device
|
||||
|
@ -32,3 +32,10 @@ DPDK_16.04 {
|
||||
|
||||
local: *;
|
||||
};
|
||||
|
||||
DPDK_16.07 {
|
||||
global:
|
||||
|
||||
rte_cryptodev_parse_vdev_init_params;
|
||||
|
||||
} DPDK_16.04;
|
||||
|
Loading…
x
Reference in New Issue
Block a user