git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cfgfile: fix symbols map
[dpdk.git]
/
lib
/
librte_cryptodev
/
rte_cryptodev.c
diff --git
a/lib/librte_cryptodev/rte_cryptodev.c
b/lib/librte_cryptodev/rte_cryptodev.c
index
43bc335
..
5c6359b
100644
(file)
--- a/
lib/librte_cryptodev/rte_cryptodev.c
+++ b/
lib/librte_cryptodev/rte_cryptodev.c
@@
-50,8
+50,7
@@
struct rte_cryptodev *rte_cryptodevs = rte_crypto_devices;
static struct rte_cryptodev_global cryptodev_globals = {
.devs = rte_crypto_devices,
.data = { NULL },
static struct rte_cryptodev_global cryptodev_globals = {
.devs = rte_crypto_devices,
.data = { NULL },
- .nb_devs = 0,
- .max_devs = RTE_CRYPTO_MAX_DEVS
+ .nb_devs = 0
};
/* spinlock for crypto device callbacks */
};
/* spinlock for crypto device callbacks */
@@
-152,6
+151,7
@@
const char *
rte_crypto_aead_algorithm_strings[] = {
[RTE_CRYPTO_AEAD_AES_CCM] = "aes-ccm",
[RTE_CRYPTO_AEAD_AES_GCM] = "aes-gcm",
rte_crypto_aead_algorithm_strings[] = {
[RTE_CRYPTO_AEAD_AES_CCM] = "aes-ccm",
[RTE_CRYPTO_AEAD_AES_GCM] = "aes-gcm",
+ [RTE_CRYPTO_AEAD_CHACHA20_POLY1305] = "chacha20-poly1305"
};
/**
};
/**
@@
-174,6
+174,8
@@
const char *rte_crypto_asym_xform_strings[] = {
[RTE_CRYPTO_ASYM_XFORM_MODINV] = "modinv",
[RTE_CRYPTO_ASYM_XFORM_DH] = "dh",
[RTE_CRYPTO_ASYM_XFORM_DSA] = "dsa",
[RTE_CRYPTO_ASYM_XFORM_MODINV] = "modinv",
[RTE_CRYPTO_ASYM_XFORM_DH] = "dh",
[RTE_CRYPTO_ASYM_XFORM_DSA] = "dsa",
+ [RTE_CRYPTO_ASYM_XFORM_ECDSA] = "ecdsa",
+ [RTE_CRYPTO_ASYM_XFORM_ECPM] = "ecpm",
};
/**
};
/**
@@
-512,7
+514,7
@@
rte_cryptodev_pmd_get_named_dev(const char *name)
if (name == NULL)
return NULL;
if (name == NULL)
return NULL;
- for (i = 0; i <
cryptodev_globals.max_devs
; i++) {
+ for (i = 0; i <
RTE_CRYPTO_MAX_DEVS
; i++) {
dev = &cryptodev_globals.devs[i];
if ((dev->attached == RTE_CRYPTODEV_ATTACHED) &&
dev = &cryptodev_globals.devs[i];
if ((dev->attached == RTE_CRYPTODEV_ATTACHED) &&
@@
-523,12
+525,21
@@
rte_cryptodev_pmd_get_named_dev(const char *name)
return NULL;
}
return NULL;
}
+static inline uint8_t
+rte_cryptodev_is_valid_device_data(uint8_t dev_id)
+{
+ if (rte_crypto_devices[dev_id].data == NULL)
+ return 0;
+
+ return 1;
+}
+
unsigned int
rte_cryptodev_pmd_is_valid_dev(uint8_t dev_id)
{
struct rte_cryptodev *dev = NULL;
unsigned int
rte_cryptodev_pmd_is_valid_dev(uint8_t dev_id)
{
struct rte_cryptodev *dev = NULL;
- if (
dev_id >= cryptodev_globals.nb_devs
)
+ if (
!rte_cryptodev_is_valid_device_data(dev_id)
)
return 0;
dev = rte_cryptodev_pmd_get_dev(dev_id);
return 0;
dev = rte_cryptodev_pmd_get_dev(dev_id);
@@
-547,12
+558,15
@@
rte_cryptodev_get_dev_id(const char *name)
if (name == NULL)
return -1;
if (name == NULL)
return -1;
- for (i = 0; i < cryptodev_globals.nb_devs; i++)
+ for (i = 0; i < RTE_CRYPTO_MAX_DEVS; i++) {
+ if (!rte_cryptodev_is_valid_device_data(i))
+ continue;
if ((strcmp(cryptodev_globals.devs[i].data->name, name)
== 0) &&
(cryptodev_globals.devs[i].attached ==
RTE_CRYPTODEV_ATTACHED))
return i;
if ((strcmp(cryptodev_globals.devs[i].data->name, name)
== 0) &&
(cryptodev_globals.devs[i].attached ==
RTE_CRYPTODEV_ATTACHED))
return i;
+ }
return -1;
}
return -1;
}
@@
-568,7
+582,7
@@
rte_cryptodev_device_count_by_driver(uint8_t driver_id)
{
uint8_t i, dev_count = 0;
{
uint8_t i, dev_count = 0;
- for (i = 0; i <
cryptodev_globals.max_devs
; i++)
+ for (i = 0; i <
RTE_CRYPTO_MAX_DEVS
; i++)
if (cryptodev_globals.devs[i].driver_id == driver_id &&
cryptodev_globals.devs[i].attached ==
RTE_CRYPTODEV_ATTACHED)
if (cryptodev_globals.devs[i].driver_id == driver_id &&
cryptodev_globals.devs[i].attached ==
RTE_CRYPTODEV_ATTACHED)
@@
-583,9
+597,10
@@
rte_cryptodev_devices_get(const char *driver_name, uint8_t *devices,
{
uint8_t i, count = 0;
struct rte_cryptodev *devs = cryptodev_globals.devs;
{
uint8_t i, count = 0;
struct rte_cryptodev *devs = cryptodev_globals.devs;
- uint8_t max_devs = cryptodev_globals.max_devs;
- for (i = 0; i < max_devs && count < nb_devices; i++) {
+ for (i = 0; i < RTE_CRYPTO_MAX_DEVS && count < nb_devices; i++) {
+ if (!rte_cryptodev_is_valid_device_data(i))
+ continue;
if (devs[i].attached == RTE_CRYPTODEV_ATTACHED) {
int cmp;
if (devs[i].attached == RTE_CRYPTODEV_ATTACHED) {
int cmp;
@@
-725,12
+740,14
@@
rte_cryptodev_pmd_allocate(const char *name, int socket_id)
cryptodev->data = *cryptodev_data;
cryptodev->data = *cryptodev_data;
- strlcpy(cryptodev->data->name, name,
- RTE_CRYPTODEV_NAME_MAX_LEN);
+ if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+ strlcpy(cryptodev->data->name, name,
+ RTE_CRYPTODEV_NAME_MAX_LEN);
- cryptodev->data->dev_id = dev_id;
- cryptodev->data->socket_id = socket_id;
- cryptodev->data->dev_started = 0;
+ cryptodev->data->dev_id = dev_id;
+ cryptodev->data->socket_id = socket_id;
+ cryptodev->data->dev_started = 0;
+ }
/* init user callbacks */
TAILQ_INIT(&(cryptodev->link_intr_cbs));
/* init user callbacks */
TAILQ_INIT(&(cryptodev->link_intr_cbs));
@@
-1099,7
+1116,7
@@
rte_cryptodev_info_get(uint8_t dev_id, struct rte_cryptodev_info *dev_info)
{
struct rte_cryptodev *dev;
{
struct rte_cryptodev *dev;
- if (
dev_id >= cryptodev_globals.nb_devs
) {
+ if (
!rte_cryptodev_pmd_is_valid_dev(dev_id)
) {
CDEV_LOG_ERR("Invalid dev_id=%d", dev_id);
return;
}
CDEV_LOG_ERR("Invalid dev_id=%d", dev_id);
return;
}