--- tags: DPDK, Cryptodev, IPSec, AES-NI vs QAT --- # DPDK Cryptodev Performance ###### tags: DPDK, IPSec ## System Model: SCB-1921B-AA1 OS: Ubuntu 18.04.5 LTS (Kernel 4.15.0-55-generic) DPDK: 19.11.4 LTS ## Prerequisites **System requirements for compilation of the DPDK** **General development tools (with GCC version 4.9 or later)** ```javascript= # yum groupinstall "Development Tools" // For RHEL/Fedora systems # apt install build-essential // For Ubuntu/Debian systems ``` **Python (python3.5 or later)** ```javascript= # sudo apt-get install libssl-dev openssl # wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz # tar xzvf Python-3.5.0.tgz # cd Python-3.5.0 # ./configure # make # python3 --version Output: Python 3.5.0 ``` **Library for handling NUMA** ```javascript= # yum install numactl-devel // For RHEL/Fedora systems # apt install libnuma-dev // For Ubuntu/Debian systems ``` **Other tools: pkg-config** ```javascript= # apt install pkg config ``` ### **System requirements for running DPDK applications: ** ```javascript= * Linux kernel version 3.16 or later (The version can be checked using the uname -r command.) * glibc version 2.7 or later (The version can be checked using the ldd --version command. GCC auto install using pkg-config and glibc auto included. Check the GCC version using gcc --version) * Kernel configuration/grub file * HUGETLBFS * PROC_PAGE_MONITOR support * HPET and HPET_MMAP configuration options should also be enabled if HPET support is required. See the section on High Precision Event Timer (HPET) Functionality for more details. ``` http://doc.dpdk.org/guides/linux_gsg/sys_reqs.html ## Install DPDK ### Download and decompress Download DPDK from source: https://core.dpdk.org/download/ or download by command: ```javascript= # wget http://fast.dpdk.org/rel/dpdk-19.11.4.tar.xz # tar xvJf dpdk-19.11.4.tar .xz # cd dpdk-stable 19.11.4 ``` ### DPDK Setting for this project before compiling: ```javascript= go to config/common_base # CONFIG_RTE_LIBRTE_PMD_QAT_SYM=y # CONFIG_RTE_LIBRTE_PMD_QAT_AESNI_MB=y # CONFIG_RTE_LIBRTE_PMD_QAT_AESNI_GCM=y ``` ### Install DPDK by script Run the setup script and choose the compiling options according to your target. ```javascript= # cd ~/dpdk-stable-19.11.4/usertools # ./dpdk-setup.sh ``` ***Possible Errors or requirements while building again.*** **Fatal Error: need to install Multi Buffer Crypto Poll Mode Drive** ### Solution: ### ### Install nasm-2.14 Grab files nasm-2.14 ```javascript= # wget https://www.nasm.us/pub/nasm/releasebuilds/2.14/nasm-2.14.tar.gz ``` unzip nasm-2.14 ```javascript= # tar xvf nasm-2.14.tar.gz ``` compile and install ```javascript= # cd nasm-2.14 # ./configure --prefix=/usr # sudo make install ``` Confirm nasm version ```javascript= # nasm -v ``` ## Install Multi Buffer Crypto Poll Mode Driver https://github.com/intel/intel-ipsec-mb ![](https://i.imgur.com/Q8yi6u9.png) Reference: https://doc.dpdk.org/guides/cryptodevs/aesni_mb.html ***Again, Run the setup script and choose the compiling options according to your target.*** ```javascript= # cd ~/dpdk-stable-19.11.4/usertools # ./dpdk-setup.sh ``` **Options to choose:** 1. option: [41] x86_64-native-linux-gcc 2. option: [45] Insert IGB UIO module 3. option: [62] Exit Script. **Reference** https://doc.dpdk.org/guides-19.11/linux_gsg/quick_start.html https://www.packetflow.co.uk/what-is-dpdk/ **Some Extra Details** **Here is the DPDK Hugepage setup procedure:** ```javascript= # mkdir -p /mnt/huge # mount -t hugetlbfs nodev /mnt/huge # echo 256 >> /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages # echo 256 >> /sys/kernel/mm/hugepages/hugepages-524288kB/nr_hugepages # cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages 256 # cat /sys/kernel/mm/hugepages/hugepages-524288kB/nr_hugepages 256 ``` **Also, do not forget to enable ip forwarding before you run a DPDK application:** ```javascript= # echo 1 > /proc/sys/net/ipv4/ip_forward ``` **Add the following line in the /etc/default/grub for hugepage setting** GRUB_CMDLINE_LINUX_DEFAULT="default_hugepagesz=1G hugepagesz=1G hugepages=8 isolcpus=16,17,18,19 " **Note: Grub settings are different for each testcase. Configure "isolcpus" value according to which cores you are going to bind when running DPDK. Remember to # update-grub after modifying grub.** ![](https://i.imgur.com/P9PJLv5.png) ***cperfops.h file locations is dpdk-stable-19.11.4/x8664-native-linux-gcc/include.*** ## Bind the IGB UIO Driver ![](https://i.imgur.com/sEc2iRm.png) ![](https://i.imgur.com/YDobwkF.png) ***Note: We must set hugepages and Bind the DPDK uio Driver again whenever we can restart the system*** ## Test Case 1 – Cryptodev QAT (Intel QuickAssist Technology) PMD performance test ![](https://i.imgur.com/kyKkvVt.png) ## Cryptodev QAT for (AES-CBC128/SHA1-HMAC) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem -w 0000:60:01.0 -w 0000:61:01.0 -w 0000:62:01.0 -w 0000:60:01.1 -w 0000:61:01.1 -w 0000:62:01.1 -w 0000:60:01.2 -w 0000:61:01.2 -w 0000:62:01.2 -w 0000:60:01.3 -w 0000:61:01.3 -w 0000:62:01.3 -w 0000:60:01.4 -w 0000:61:01.4 -w 0000:62:01.4 -w 0000:60:01.5 -w 0000:61:01.5 -w 0000:62:01.5 -w 0000:60:01.6 -w 0000:61:01.6 -w 0000:62:01.6 -w 0000:60:01.7 -w 0000:61:01.7 -w 0000:62:01.7 --vdev crypto_scheduler_pmd_1,slave=0000:60:01.0_qat_sym,slave=0000:61:01.0_qat_sym,slave=0000:62:01.0_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_2,slave=0000:60:01.1_qat_sym,slave=0000:61:01.1_qat_sym,slave=0000:62:01.1_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_3,slave=0000:60:01.2_qat_sym,slave=0000:61:01.2_qat_sym,slave=0000:62:01.2_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_4,slave=0000:60:01.3_qat_sym,slave=0000:61:01.3_qat_sym,slave=0000:62:01.3_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_5,slave=0000:60:01.4_qat_sym,slave=0000:61:01.4_qat_sym,slave=0000:62:01.4_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_6,slave=0000:60:01.5_qat_sym,slave=0000:61:01.5_qat_sym,slave=0000:62:01.5_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_7,slave=0000:60:01.6_qat_sym,slave=0000:61:01.6_qat_sym,slave=0000:62:01.6_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_8,slave=0000:60:01.7_qat_sym,slave=0000:61:01.7_qat_sym,slave=0000:62:01.7_qat_sym,mode=round-robin -l 7,8,9,23,10,24,11,25,12 -n 6 -- --buffer-sz 64,128,256,512,1024,2048 --optype cipher-then-auth --ptest throughput --auth-key-sz 64 --cipher-key-sz 16 --devtype crypto_scheduler --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-ops 30000000 --silent --digest-sz 20 --auth-algo sha1-hmac --cipher-algo aes-cbc --cipher-op encrypt ``` ![](https://i.imgur.com/nwKxX5o.png) ![](https://i.imgur.com/z37F3Of.png) ![](https://i.imgur.com/WkktVNY.png) ## Cryptodev QAT for (AES-CBC128/SHA2-256-HMAC) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem -w 0000:60:01.0 -w 0000:61:01.0 -w 0000:62:01.0 -w 0000:60:01.1 -w 0000:61:01.1 -w 0000:62:01.1 -w 0000:60:01.2 -w 0000:61:01.2 -w 0000:62:01.2 -w 0000:60:01.3 -w 0000:61:01.3 -w 0000:62:01.3 -w 0000:60:01.4 -w 0000:61:01.4 -w 0000:62:01.4 -w 0000:60:01.5 -w 0000:61:01.5 -w 0000:62:01.5 -w 0000:60:01.6 -w 0000:61:01.6 -w 0000:62:01.6 -w 0000:60:01.7 -w 0000:61:01.7 -w 0000:62:01.7 --vdev crypto_scheduler_pmd_1,slave=0000:60:01.0_qat_sym,slave=0000:61:01.0_qat_sym,slave=0000:62:01.0_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_2,slave=0000:60:01.1_qat_sym,slave=0000:61:01.1_qat_sym,slave=0000:62:01.1_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_3,slave=0000:60:01.2_qat_sym,slave=0000:61:01.2_qat_sym,slave=0000:62:01.2_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_4,slave=0000:60:01.3_qat_sym,slave=0000:61:01.3_qat_sym,slave=0000:62:01.3_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_5,slave=0000:60:01.4_qat_sym,slave=0000:61:01.4_qat_sym,slave=0000:62:01.4_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_6,slave=0000:60:01.5_qat_sym,slave=0000:61:01.5_qat_sym,slave=0000:62:01.5_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_7,slave=0000:60:01.6_qat_sym,slave=0000:61:01.6_qat_sym,slave=0000:62:01.6_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_8,slave=0000:60:01.7_qat_sym,slave=0000:61:01.7_qat_sym,slave=0000:62:01.7_qat_sym,mode=round-robin -l 7,8,9,23,10,24,11,25,12 -n 6 -- --buffer-sz 64,128,256,512,1024,2048 --optype cipher-then-auth --ptest throughput --auth-key-sz 64 --cipher-key-sz 16 --devtype crypto_scheduler --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-ops 30000000 --silent --digest-sz 20 --auth-algo sha2-256-hmac --cipher-algo aes-cbc --cipher-op encrypt ``` ![](https://i.imgur.com/HId0mkf.png) ![](https://i.imgur.com/RGbP0WL.png) ![](https://i.imgur.com/fwNFUBz.png) ## Cryptodev QAT for (AES-GCM-128) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem -w 0000:60:01.0 -w 0000:61:01.0 -w 0000:62:01.0 -w 0000:60:01.1 -w 0000:61:01.1 -w 0000:62:01.1 -w 0000:60:01.2 -w 0000:61:01.2 -w 0000:62:01.2 -w 0000:60:01.3 -w 0000:61:01.3 -w 0000:62:01.3 -w 0000:60:01.4 -w 0000:61:01.4 -w 0000:62:01.4 -w 0000:60:01.5 -w 0000:61:01.5 -w 0000:62:01.5 -w 0000:60:01.6 -w 0000:61:01.6 -w 0000:62:01.6 -w 0000:60:01.7 -w 0000:61:01.7 -w 0000:62:01.7 --vdev crypto_scheduler_pmd_1,slave=0000:60:01.0_qat_sym,slave=0000:61:01.0_qat_sym,slave=0000:62:01.0_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_2,slave=0000:60:01.1_qat_sym,slave=0000:61:01.1_qat_sym,slave=0000:62:01.1_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_3,slave=0000:60:01.2_qat_sym,slave=0000:61:01.2_qat_sym,slave=0000:62:01.2_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_4,slave=0000:60:01.3_qat_sym,slave=0000:61:01.3_qat_sym,slave=0000:62:01.3_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_5,slave=0000:60:01.4_qat_sym,slave=0000:61:01.4_qat_sym,slave=0000:62:01.4_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_6,slave=0000:60:01.5_qat_sym,slave=0000:61:01.5_qat_sym,slave=0000:62:01.5_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_7,slave=0000:60:01.6_qat_sym,slave=0000:61:01.6_qat_sym,slave=0000:62:01.6_qat_sym,mode=round-robin --vdev crypto_scheduler_pmd_8,slave=0000:60:01.7_qat_sym,slave=0000:61:01.7_qat_sym,slave=0000:62:01.7_qat_sym,mode=round-robin -l 7,8,9,23,10,24,11,25,12 -n 6 -- --aead-key-sz 16 --buffer-sz 64,128,256,512,1024,2048 --optype aead --ptest throughput --aead-aad-sz 16 --devtype crypto_scheduler --aead-op encrypt --burst-sz 32 --total-ops 30000000 --silent --digest-sz 16 --aead-algo aes-gcm --aead-iv-sz 12 ``` ![](https://i.imgur.com/fOxqQAz.png) ![](https://i.imgur.com/NJz7wwC.png) ![](https://i.imgur.com/5DygT9v.png) ### Test Case 2 – Cryptodev SW ## Cryptodev performance for (AES-CBC128/SHA1-HMAC) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem --vdev crypto_aesni_mb_pmd_1 -l 9,10 -n 6 -w 0000:18:00.0 -w 0000:18:0.1 -- --buffer-sz 64,128,256,512,1024,2048 --optype cipher-then-auth --ptest throughput --auth-key-sz 64 --cipher-key-sz 16 --devtype crypto_aesni_mb --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-ops 10000000 --digest-sz 12 --auth-algo sha1-hmac --cipher-algo aes-cbc --cipher-op encrypt ``` ![](https://i.imgur.com/ySn3eDy.png) ## Cryptodev performance for (AES-CBC128/SHA2-256-HMAC) ```javascript= ## ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem --vdev crypto_aesni_mb_pmd_1 -l 9,10 -n 6 -w 0000:18:00.0 -w 0000:18:0.1 -- --buffer-sz 64,128,256,512,1024,2048 --optype cipher-then-auth --ptest throughput --auth-key-sz 64 --cipher-key-sz 16 --devtype crypto_aesni_mb --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-ops 10000000 --digest-sz 12 --auth-algo sha2-256-hmac --cipher-algo aes-cbc --cipher-op encrypt ``` ![](https://i.imgur.com/NS5Bpl7.png) ## Cryptodev performance for (AES-GCM-128) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem --vdev crypto_aesni_gcm_pmd_1 -l 9,10 -n 6 -w 0000:18:00.0 -w 0000:18:0.1 -- --aead-key-sz 16 --buffer-sz 64,128,256,512,1024,2048 --optype aead --ptest throughput --aead-aad-sz 16 --devtype crypto_aesni_gcm --aead-op encrypt --burst-sz 32 --total-ops 10000000 --digest-sz 16 --aead-algo aes-gcm --aead-iv-sz 12 ``` ![](https://i.imgur.com/xVFaKIJ.png) ## Test Case 2 – Cryptodev SW ### Cryptodev performance for (AES-CBC128/SHA1-HMAC) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem --vdev crypto_aesni_mb_pmd_1 -l 9,10 -n 6 -w 0000:18:00.0 -w 0000:18:0.1 -- --buffer-sz 64,128,256,512,1024,2048 --optype cipher-then-auth --ptest throughput --auth-key-sz 64 --cipher-key-sz 16 --devtype crypto_aesni_mb --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-ops 10000000 --digest-sz 12 --auth-algo sha1-hmac --cipher-algo aes-cbc --cipher-op encrypt ``` ![](https://i.imgur.com/gp6FfLB.png) ### Cryptodev performance for (AES-CBC128/SHA2-256-HMAC) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem --vdev crypto_aesni_mb_pmd_1 -l 9,10 -n 6 -w 0000:18:00.0 -w 0000:18:0.1 -- --buffer-sz 64,128,256,512,1024,2048 --optype cipher-then-auth --ptest throughput --auth-key-sz 64 --cipher-key-sz 16 --devtype crypto_aesni_mb --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-ops 10000000 --digest-sz 12 --auth-algo sha2-256-hmac --cipher-algo aes-cbc --cipher-op encrypt ``` ![](https://i.imgur.com/SreSAh0.png) ### Cryptodev performance for (AES-GCM-128) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem --vdev crypto_aesni_gcm_pmd_1 -l 9,10 -n 6 -w 0000:18:00.0 -w 0000:18:0.1 -- --aead-key-sz 16 --buffer-sz 64,128,256,512,1024,2048 --optype aead --ptest throughput --aead-aad-sz 16 --devtype crypto_aesni_gcm --aead-op encrypt --burst-sz 32 --total-ops 10000000 --digest-sz 16 --aead-algo aes-gcm --aead-iv-sz 12 ``` ![](https://i.imgur.com/zj5Q4QF.png) ## Test Case 3 – Cryptodev QAT (Intel QuickAssist Technology) PMD performance test ![](https://i.imgur.com/9RbyewE.png) ### Cryptodev performance for (AES-CBC128/SHA1-HMAC) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem -w 0000:60:01.0 -w 0000:61:01.0 -w 0000:62:01.0 -l 4,5,13,6,14 -n 4 -- --buffer-sz 64,128,256,512,1024,2048 --optype cipher-then-auth --ptest throughput --auth-key-sz 64 --cipher-key-sz 16 --devtype crypto_qat --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-ops 30000000 --silent --digest-sz 20 --auth-algo sha1-hmac --cipher-algo aes-cbc --cipher-op encrypt ``` ![](https://i.imgur.com/xoOYdvO.png) ![](https://i.imgur.com/GC2pYAx.png) ### Cryptodev performance for (AES-CBC128/SHA2-256-HMAC) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem -w 0000:60:01.0 -w 0000:61:01.0 -w 0000:62:01.0 -l 4,5,13,6,14 -n 4 -- --buffer-sz 64,128,256,512,1024,2048 --optype cipher-then-auth --ptest throughput --auth-key-sz 64 --cipher-key-sz 16 --devtype crypto_qat --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-ops 30000000 --silent --digest-sz 20 --auth-algo sha2-256-hmac --cipher-algo aes-cbc --cipher-op encrypt ``` ![](https://i.imgur.com/EuV5Sd2.png) ![](https://i.imgur.com/TAebG9r.png) ### Cryptodev performance for (AES-GCM-128) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem -w 0000:60:01.0 -w 0000:61:01.0 -w 0000:62:01.0 -l 4,5,13,6,14 -n 4 -- --buffer-sz 64,128,256,512,1024,2048 --aead-key-sz 16 --optype aead --ptest throughput --aead-aad-sz 16 --devtype crypto_qat --aead-op encrypt 16 --burst-sz 32 --total-ops 30000000 --silent --digest-sz 16 --auth-algo aes-gcm –aead-iv-sz 12 ``` ![](https://i.imgur.com/XlxXBbn.png) ![](https://i.imgur.com/10ccWNE.png) ## Test Case 4 – Cryptodev SW (AESNI-MB, AESNI-GCM) PMD performance test ### Cryptodev performance for (AES-CBC128/SHA1-HMAC) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem --vdev crypto_aesni_mb_pmd_1 -l 4,5 -n 4 -w 0000:18:00.0 -w 0000:18:0.1 -- --buffer-sz 64,128,256,512,1024,2048 --optype cipher-then-auth --ptest throughput --auth-key-sz 64 --cipher-key-sz 16 --devtype crypto_aesni_mb --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-ops 10000000 --digest-sz 12 --auth-algo sha1-hmac --cipher-algo aes-cbc --cipher-op encrypt ``` ![](https://i.imgur.com/u5j9bUN.png) ### Cryptodev performance for (AES-CBC128/SHA2-256-HMAC) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem --vdev crypto_aesni_mb_pmd_1 -l 4,5 -n 4 -w 0000:18:00.0 -w 0000:18:0.1 -- --buffer-sz 64,128,256,512,1024,2048 --optype cipher-then-auth --ptest throughput --auth-key-sz 64 --cipher-key-sz 16 --devtype crypto_aesni_mb --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-ops 10000000 --digest-sz 12 --auth-algo sha1-256-hmac --cipher-algo aes-cbc --cipher-op encrypt ``` ![](https://i.imgur.com/awWZ501.png) ### Cryptodev performance for (AES-GCM-128) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem --vdev crypto_aesni_mb_pmd_1 -l 4,5 -n 4 -w 0000:18:00.0 -w 0000:18:0.1 -- --aead-key-sz 16 --buffer-sz 64,128,256,512,1024,2048 --optype aead --ptest throughput --aead-aad-sz 16 --devtype crypto_aesni_gcm --aead-op encrypt --burst-sz 32 --total-ops 10000000 --silent --digest-sz 16 --aead-algo aes-gcm --aead-iv-sz 12 ``` ![](https://i.imgur.com/sTByuC2.png) ## Test Case 5 – Cryptodev QAT (Intel QuickAssist Technology) PMD performance test ![](https://i.imgur.com/QBhkobC.png) ### Cryptodev performance for (AES-CBC128/SHA1-HMAC) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem -w 0000:60:01.0 -w 0000:61:01.0 -w 0000:62:01.0 -l 6,7,8,9,10 -n 2 -- --buffer-sz 64,128,256,512,1024,2048 --optype cipher-then-auth --ptest throughput --auth-key-sz 64 --cipher-key-sz 16 --devtype crypto_qat --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-ops 30000000 --silent --digest-sz 20 --auth-algo sha1-hmac --cipher-algo aes-cbc --cipher-op encrypt ``` ![](https://i.imgur.com/ADezfCC.png) ![](https://i.imgur.com/TG4nBjS.png) ### Cryptodev performance for (AES-CBC128/SHA2-256-HMAC) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem -w 0000:60:01.0 -w 0000:61:01.0 -w 0000:62:01.0 -l 6,7,8,9,10 -n 2 -- --buffer-sz 64,128,256,512,1024,2048 --optype cipher-then-auth --ptest throughput --auth-key-sz 64 --cipher-key-sz 16 --devtype crypto_qat --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-ops 30000000 --silent --digest-sz 20 --auth-algo sha2-256-hmac --cipher-algo aes-cbc --cipher-op encrypt ``` ![](https://i.imgur.com/BLDuwmC.png) ![](https://i.imgur.com/WiB4WuM.png) ### Cryptodev performance for (AES-GCM-128) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem -w 0000:60:01.0 -w 0000:61:01.0 -w 0000:62:01.0 -l 6,7,8,9,10 -n 2 -- --aead-key-sz 16 --buffer-sz 64,128,256,512,1024,2048 --optype aead --ptest throughput --aead-aad-sz 16 --devtype crypto_qat --aead-op encrypt --burst-sz 32 --total-ops 30000000 --silent --digest-sz 16 --aead-algo aes-gcm --aead-iv-sz 12 ``` ![](https://i.imgur.com/qBKC6eP.png) ![](https://i.imgur.com/7ogWR71.png) ## Test Case 6 – Cryptodev SW (AESNI-MB, AESNI-GCM) PMD performance test ### Cryptodev performance for (AES-CBC128/SHA1-HMAC) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem --vdev crypto_aesni_mb_pmd_1 -l 6,7 -n 2 -w 0000:18:00.0 -w 0000:18:0.1 -- --buffer-sz 64,128,256,512,1024,2048 --optype cipher-then-auth --ptest throughput --auth-key-sz 64 --cipher-key-sz 16 --devtype crypto_aesni_mb --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-ops 10000000 –silent --digest-sz 12 --auth-algo sha1-hmac --cipher-algo aes-cbc --cipher-op encrypt ``` ![](https://i.imgur.com/TEJvSAG.png) ### Cryptodev performance for (AES-CBC128/SHA2-256-HMAC) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem --vdev crypto_aesni_mb_pmd_1 -l 6,7 -n 2 -w 0000:18:00.0 -w 0000:18:0.1 -- --buffer-sz 64,128,256,512,1024,2048 --optype cipher-then-auth --ptest throughput --auth-key-sz 64 --cipher-key-sz 16 --devtype crypto_aesni_mb --cipher-iv-sz 16 --auth-op generate --burst-sz 32 --total-ops 10000000 --silent --digest-sz 12 --auth-algo sha2-256-hmac --cipher-algo aes-cbc --cipher-op encrypt ``` ![](https://i.imgur.com/hb4UMgR.png) ### Cryptodev performance for (AES-GCM-128) ```javascript= ./dpdk-test-crypto-perf --socket-mem 2048,0 --legacy-mem --vdev crypto_aesni_mb_pmd_1 -l 6,7 -n 2 -w 0000:18:00.0 -w 0000:18:0.1 -- --aead-key-sz 16 --buffer-sz 64,128,256,512,1024,2048 --optype aead --ptest throughput –aead-aad-sz 16 --devtype crypto_aesni_gcm –aead-op encrypt --burst-sz 32 --total-ops 10000000 --silent --digest-sz 16 --aead-algo aes-gcm –aead-iv-sz 12 ``` ![](https://i.imgur.com/thF941x.png) ## Final Result ![](https://i.imgur.com/OEOcH2r.png)