FD.io VPP
v17.04-9-g99c0734
Vector Packet Processing
|
This document is meant to contain all related information about implementation and usability.
DPDK Cryptodev is an asynchronous crypto API that supports both Hardware and Software implementations (for more details refer to DPDK Cryptography Device Library documentation).
When DPDK support is enabled and there are enough Cryptodev resources for all workers, the node graph is reconfigured by adding and changing default next nodes.
The following nodes are added:
Set new default next nodes:
DPDK Cryptodev is supported in DPDK enabled VPP. By default, only HW Cryptodev is supported but needs to be explicetly enabled with the following config option:
To enable SW Cryptodev support (AESNI-MB-PMD and GCM-PMD), we need the following env option:
vpp_uses_dpdk_cryptodev_sw=yes
A couple of ways to achive this:
When enabling SW Cryptodev support, it means that you need to pre-build the required crypto libraries needed by those SW Cryptodev PMDs. This requires nasm, see nasm section below.
VPP allocates crypto resources based on a best effort approach:
0: dpdk_ipsec_init: not enough cryptodevs for ipsec
To enable DPDK Cryptodev the user just need to provide the startup.conf option as mentioned previously.
Example startup.conf:
In the above configuration:
For further details refer to DPDK Crypto Device Driver documentation
The following CLI command displays the Cryptodev/Worker mapping:
show crypto device mapping [verbose]
Building the DPDK Crypto Libraries requires the open source project nasm (The Netwide Assembler) to be installed. Recommended version of nasm is 2.12.02. Minimum supported version of nasm is 2.11.06. Use the following command to determine the current nasm version:
nasm -v
CentOS 7.3 and earlier and Fedora 21 and earlier use unsupported versions of nasm. Use the following set of commands to build a supported version:
wget http://www.nasm.us/pub/nasm/releasebuilds/2.12.02/nasm-2.12.02.tar.bz2 tar -xjvf nasm-2.12.02.tar.bz2 cd nasm-2.12.02/ ./configure make sudo make install