[dpdk-dev] Crypto-dev schedular - Support for multiple crypto algorithms concurrently
Jitendra Saini
sainijiten89 at gmail.com
Mon Apr 29 10:17:49 CEST 2019
Hi All,
Context: Using dpdk + vpp for telecom network user plane processing
Desired: want to use dpdk crypto-dev scheduler to have 2 cores dedicated
for crypto operations
Issue: crypto devices of different types (AES_MB & AES_GCM) are not
supported concurrently.
Query: Have anyone used crypto scheduler and able to support multiple
crypto device types?
Details:
We want to use 4 cores in total for user plane processing with following
deployment
Core-1: vpp worker thread - downlink
Core-2 : vpp worker thread - uplink
Core-3 : crypto-slave-1 (Cipher: aes-cbc-128)
Core-4 : crypto-slave-2 (Cipher: aes-gcm-128)
vpp# sh dpdk crypto devices
aesni_mb_1 crypto_aesni_mb up
numa_node 0, max_queues 8
free_resources 2, used_resources 2
SYMMETRIC_CRYPTO, SYM_OPERATION_CHAINING, CPU_AVX2, CPU_AESNI
Cipher: aes-cbc-128, aes-cbc-192, aes-cbc-256, aes-ctr-128, aes-ctr-192,
aes-ctr-256
Auth: md5-96, sha1-96, sha-256-128, sha-384-192, sha-512-256,
aes-xcbc-mac-96
aesni_gcm_1 crypto_aesni_gcm up
numa_node 0, max_queues 8
free_resources 2, used_resources 2
SYMMETRIC_CRYPTO, SYM_OPERATION_CHAINING, CPU_AVX2, CPU_AESNI,
MBUF_SCATTER_GATHER
Cipher: aes-gcm-128, aes-gcm-192, aes-gcm-256
Auth: aes-gmac-128, aes-gmac-256
crypto_scheduler crypto_scheduler up
numa_node 0, max_queues 8
free_resources 2, used_resources 2
SYMMETRIC_CRYPTO, SYM_OPERATION_CHAINING, CPU_AVX2, CPU_AESNI,
MBUF_SCATTER_GATHER
Cipher: aes-gcm-128, aes-gcm-192, aes-gcm-256
Auth:
vpp# sh dpdk crypto placement verbose
Thread 1 (vpp_wk_0):
aesni_mb_1 dev-id 0 inbound-queue 0 outbound-queue 1
Cipher: aes-cbc-128, aes-cbc-192, aes-cbc-256, aes-ctr-128,
aes-ctr-192, aes-ctr-256
Auth: md5-96, sha1-96, sha-256-128, sha-384-192, sha-512-256,
aes-xcbc-mac-96
aesni_gcm_1 dev-id 1 inbound-queue 0 outbound-queue 1
Cipher:
Auth: aes-gmac-128, aes-gmac-256
crypto_scheduler dev-id 2 inbound-queue 0 outbound-queue 1
Cipher: aes-gcm-128, aes-gcm-192, aes-gcm-256
Auth:
Thread 2 (vpp_wk_1):
aesni_mb_1 dev-id 0 inbound-queue 2 outbound-queue 3
Cipher: aes-cbc-128, aes-cbc-192, aes-cbc-256, aes-ctr-128,
aes-ctr-192, aes-ctr-256
Auth: md5-96, sha1-96, sha-256-128, sha-384-192, sha-512-256,
aes-xcbc-mac-96
aesni_gcm_1 dev-id 1 inbound-queue 2 outbound-queue 3
Cipher:
Auth: aes-gmac-128, aes-gmac-256
crypto_scheduler dev-id 2 inbound-queue 2 outbound-queue 3
Cipher: aes-gcm-128, aes-gcm-192, aes-gcm-256
Auth:
Query - Detail : with above log output, we see crypto-slaves aesni_mb_1 &
aesni_gcm_1 deployed on both worker threads but from Test Results we see
following -
AES Traffic - works through crypto scehdular
GCM Traffic - does not work. (Error - dpdk-esp-decrypt Failed to
get crypto session)
Can someone please help to understand this behavior / suggest if any
approach worked for you to support multiple crypto algorithms?
Thanks in advance
Best Regads,
Jitendra
More information about the dev
mailing list