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_dev.h>
|
||||||
#include <rte_malloc.h>
|
#include <rte_malloc.h>
|
||||||
#include <rte_cpuflags.h>
|
#include <rte_cpuflags.h>
|
||||||
#include <rte_kvargs.h>
|
|
||||||
|
|
||||||
#include "rte_kasumi_pmd_private.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_mbuf
|
||||||
DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += lib/librte_cryptodev
|
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_ring
|
||||||
DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += lib/librte_kvargs
|
|
||||||
|
|
||||||
include $(RTE_SDK)/mk/rte.lib.mk
|
include $(RTE_SDK)/mk/rte.lib.mk
|
||||||
|
@ -38,7 +38,6 @@
|
|||||||
#include <rte_dev.h>
|
#include <rte_dev.h>
|
||||||
#include <rte_malloc.h>
|
#include <rte_malloc.h>
|
||||||
#include <rte_cpuflags.h>
|
#include <rte_cpuflags.h>
|
||||||
#include <rte_kvargs.h>
|
|
||||||
|
|
||||||
#include "rte_snow3g_pmd_private.h"
|
#include "rte_snow3g_pmd_private.h"
|
||||||
|
|
||||||
|
@ -102,6 +102,97 @@ struct rte_cryptodev_callback {
|
|||||||
uint32_t active; /**< Callback is executing */
|
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 *
|
const char *
|
||||||
rte_cryptodev_get_feature_name(uint64_t flag)
|
rte_cryptodev_get_feature_name(uint64_t flag)
|
||||||
|
@ -300,48 +300,6 @@ struct rte_crypto_vdev_init_params {
|
|||||||
uint8_t socket_id;
|
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
|
* Parse virtual device initialisation parameters input arguments
|
||||||
* @internal
|
* @internal
|
||||||
@ -353,55 +311,10 @@ __rte_cryptodev_parse_integer_arg(const char *key __rte_unused,
|
|||||||
* 0 on successful parse
|
* 0 on successful parse
|
||||||
* <0 on failure to parse
|
* <0 on failure to parse
|
||||||
*/
|
*/
|
||||||
static inline int
|
int
|
||||||
rte_cryptodev_parse_vdev_init_params(struct rte_crypto_vdev_init_params *params,
|
rte_cryptodev_parse_vdev_init_params(
|
||||||
const char *input_args)
|
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a virtual crypto device
|
* Create a virtual crypto device
|
||||||
|
@ -32,3 +32,10 @@ DPDK_16.04 {
|
|||||||
|
|
||||||
local: *;
|
local: *;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
DPDK_16.07 {
|
||||||
|
global:
|
||||||
|
|
||||||
|
rte_cryptodev_parse_vdev_init_params;
|
||||||
|
|
||||||
|
} DPDK_16.04;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user