Intel® Multi-buffer Crypto for IPsec on DPDK - Get Started

See how to configure DPDK to use the Intel Multi-buffer Crypto for IPSec library with the AES-NI Multi-Buffer Crypto Poll Mode Driver. The driver will communicate with the library and perform crypto operations on packets received from a network device. The video shows how to test the driver using DPDK's cryptodev_aesni_mb_autotest application.

Additional Information

The Data Plane Development Kit - dpdk.org

AESN-NI Multi Buffer Crypto Poll Mode Driver at dpdk.org

Fast Multi-buffer IPsec Implementations on Intel® Architecture Processors - white paper

Hello, my name is Pablo de Lara Guarch, and in this video, I will show you
how to use the Intel® Multi-buffer library for IPSec on DPDK.
This library is an optimized library that performs cryptographic operations
such as ciphering with AES-CBC and authentication with SHA1, using the
latest vector instructions from an Intel CPU for best performance.

The first thing that we will do is getting the Multi-buffer library.
We are in the homepage of the DPDK project, so let's go to documentation tab,
then let's go to user guides, Crypto device drivers, then click on
AES-NI Multi-Buffer Crypto Poll Mode Driver and then let's go to the installation
section. We can see the link to the library. Mind that in this case, the version
of the library is 0.44, which is compatible with DPDK 17.02.
Please, check the documentation for further updates on the versioning.

So, I just copied and downloaded the library on my system. Let's extract it
and compile it. We will use unzip to extract the file and then we will
get into the folder and install the library with "make -j".

Going back to the documentation, we see that we need to export the environmental
variable "AESNI_MULTI_BUFFER_LIB_PATH" to the path where we just extracted
the library. So let's do that with the command "export AESNI_MULTI_BUFFER_LIB_PATH" to
the current directory.

Now, we need to get the DPDK source code. So, let's go back to the dpdk.org homepage.
Then, we will go to Development, and then here you can see the command to get
the DPDK source code.

OK, so I just cloned the DPDK repository. Now we are going to build it with
the driver that uses the "Intel® Multi-buffer library for IPSec". First thing
that we will do is build the configuration with "make config".
Then, we need to open the configuration file in the build directory,
and enable the AES-NI Multi-Buffer driver.

Now, let's build DPDK. We will use the command "make test-build" to build
also the test application to verify the AES-NI Multi-Buffer driver.

Before running any application, we need to set up hugepages, which is the
memory used by DPDK. We can do this with the script "dpdk-setup", which is
in "usertools" folder. Then, we select the option 19, to set up hugepages
for NUMA systems. So, we will reserve a 128 pages per socket.

OK, so now we are ready to run a DPDK application. Let's run the test application
that I mentioned before, which is in the build directory.
In order to use the crypto driver, we need to use the EAL parameter "vdev"
to create and initialize the device. In this case, the name of the driver
is "crypto_aesni_mb".

To run the crypto test, type in "cryptodev_aesni_mb_autotest".
As we can see, all the tests have passed, so we just verified that the
driver works.

There are other applications that use crypto drivers in the DPDK package.
One is the L2fwd crypto application, which is the examples folder.
This application receives packets from a port, encrypt or authenticate them
and transmit them to another port. Check out this and other applications
in the DPDK documentation.

Thanks for watching.