summaryrefslogtreecommitdiffstats
path: root/src/plugins/dpdk/cryptodev/cryptodev.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/dpdk/cryptodev/cryptodev.c')
-rw-r--r--src/plugins/dpdk/cryptodev/cryptodev.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/plugins/dpdk/cryptodev/cryptodev.c b/src/plugins/dpdk/cryptodev/cryptodev.c
index 0506ab8373b..39da4d7a3ca 100644
--- a/src/plugins/dpdk/cryptodev/cryptodev.c
+++ b/src/plugins/dpdk/cryptodev/cryptodev.c
@@ -457,8 +457,8 @@ cryptodev_frame_linked_algs_enqueue (vlib_main_t * vm,
cryptodev_op_t **cop;
u32 *bi;
u32 n_enqueue, n_elts;
- cryptodev_key_t *key = 0;
- u32 last_key_index = ~0;
+ cryptodev_key_t *key;
+ u32 last_key_index;
if (PREDICT_FALSE (frame == 0 || frame->n_elts == 0))
return -1;
@@ -485,6 +485,9 @@ cryptodev_frame_linked_algs_enqueue (vlib_main_t * vm,
cop[0]->frame = frame;
cop[0]->n_elts = n_elts;
+ key = pool_elt_at_index (cmt->keys, fe->key_index);
+ last_key_index = fe->key_index;
+
while (n_elts)
{
vlib_buffer_t *b = vlib_get_buffer (vm, bi[0]);
@@ -559,8 +562,8 @@ cryptodev_frame_gcm_enqueue (vlib_main_t * vm,
cryptodev_op_t **cop;
u32 *bi;
u32 n_enqueue = 0, n_elts;
- cryptodev_key_t *key = 0;
- u32 last_key_index = ~0;
+ cryptodev_key_t *key;
+ u32 last_key_index;
if (PREDICT_FALSE (frame == 0 || frame->n_elts == 0))
return -1;
@@ -588,6 +591,9 @@ cryptodev_frame_gcm_enqueue (vlib_main_t * vm,
cop[0]->n_elts = n_elts;
frame->state = VNET_CRYPTO_OP_STATUS_COMPLETED;
+ key = pool_elt_at_index (cmt->keys, fe->key_index);
+ last_key_index = fe->key_index;
+
while (n_elts)
{
vlib_buffer_t *b = vlib_get_buffer (vm, bi[0]);
@@ -1229,7 +1235,7 @@ dpdk_cryptodev_init (vlib_main_t * vm)
u32 n_workers = tm->n_vlib_mains - skip_master;
u32 numa = vm->numa_node;
i32 sess_sz;
- u32 n_cop_elts;
+ u64 n_cop_elts;
u32 eidx;
u32 i;
u8 *name = 0;