From 30ad571cc35e4dc6d4d7e50b81b97f83f8770eea Mon Sep 17 00:00:00 2001 From: =?utf8?q?Beno=C3=AEt=20Ganne?= Date: Fri, 22 Jan 2021 18:11:37 +0100 Subject: [PATCH] crypto: fix ops flags in crypto sw scheduler MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The sw crypto scheduler converts crypto frames to individual crypto operations. This is done by reusing per-thread vectors for crypto, integrity and chained operations. The crypto op flags must be reset to frame flags minus invalid values depending of the operation. The previous tentative also cleared the chained buffer flag, breaking jumbo support. Type: fix Change-Id: Icce6887a9e0dae8c300c56e97b977e203e784713 Signed-off-by: Benoît Ganne --- src/plugins/crypto_sw_scheduler/main.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/plugins/crypto_sw_scheduler/main.c b/src/plugins/crypto_sw_scheduler/main.c index 980fa14e5f1..29f91b36345 100644 --- a/src/plugins/crypto_sw_scheduler/main.c +++ b/src/plugins/crypto_sw_scheduler/main.c @@ -148,8 +148,6 @@ cryptodev_sw_scheduler_sgl (vlib_main_t * vm, u32 n_chunks = 0; u32 chunk_index = vec_len (ptd->chunks); - op->flags |= VNET_CRYPTO_OP_FLAG_CHAINED_BUFFERS; - while (len) { if (nb->current_data + nb->current_length > offset) @@ -251,15 +249,12 @@ crypto_sw_scheduler_convert_link_crypto (vlib_main_t * vm, crypto_op->iv = fe->iv; crypto_op->key_index = key->index_crypto; crypto_op->user_data = 0; + crypto_op->flags = fe->flags & ~VNET_CRYPTO_OP_FLAG_HMAC_CHECK; integ_op->op = integ_op_id; integ_op->digest = fe->digest; integ_op->digest_len = digest_len; integ_op->key_index = key->index_integ; - crypto_op->flags = integ_op->flags = 0; - if (is_enc) - crypto_op->flags |= VNET_CRYPTO_OP_FLAG_INIT_IV; - else - integ_op->flags |= VNET_CRYPTO_OP_FLAG_HMAC_CHECK; + integ_op->flags = fe->flags & ~VNET_CRYPTO_OP_FLAG_INIT_IV; crypto_op->user_data = integ_op->user_data = index; } -- 2.16.6