---
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

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.**

***cperfops.h file locations is dpdk-stable-19.11.4/x8664-native-linux-gcc/include.***
## Bind the IGB UIO Driver


***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

## 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
```



## 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
```



## 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
```



### 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
```

## 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
```

## 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
```

## 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
```

### 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
```

### 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
```

## Test Case 3 – Cryptodev QAT (Intel QuickAssist Technology) PMD performance test

### 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
```


### 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
```


### 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
```


## 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
```

### 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
```

### 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
```

## Test Case 5 – Cryptodev QAT (Intel QuickAssist Technology) PMD performance test

### 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
```


### 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
```


### 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
```


## 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
```

### 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
```

### 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
```

## Final Result
