[dpdk-users] Crypto-dev schedular - Support for multiple crypto algorithms concurrently

Jitendra Saini sainijiten89 at gmail.com
Mon Apr 29 09:47:21 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 users mailing list