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