* Build the multi buffer library (explained in Installation section).
-* Set CONFIG_RTE_LIBRTE_PMD_AESNI_GCM=y in config/common_base.
-
To use the PMD in an application, user must:
* Call rte_vdev_init("crypto_aesni_gcm") within the application.
.. code-block:: console
- ./l2fwd-crypto -l 1 -n 4 --vdev="crypto_aesni_gcm,socket_id=0,max_nb_sessions=128" \
+ ./dpdk-l2fwd-crypto -l 1 -n 4 --vdev="crypto_aesni_gcm,socket_id=0,max_nb_sessions=128" \
-- -p 1 --cdev SW --chain AEAD --aead_algo "aes-gcm"
* Build the multi buffer library (explained in Installation section).
-* Set CONFIG_RTE_LIBRTE_PMD_AESNI_MB=y in config/common_base.
-
To use the PMD in an application, user must:
* Call rte_vdev_init("crypto_aesni_mb") within the application.
.. code-block:: console
- ./l2fwd-crypto -l 1 -n 4 --vdev="crypto_aesni_mb,socket_id=0,max_nb_sessions=128" \
+ ./dpdk-l2fwd-crypto -l 1 -n 4 --vdev="crypto_aesni_mb,socket_id=0,max_nb_sessions=128" \
-- -p 1 --cdev SW --chain CIPHER_HASH --cipher_algo "aes-cbc" --auth_algo "sha1-hmac"
Extra notes
make -C $ARMV8_CRYPTO_LIB_PATH/
-* Set CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO=y in
- config/defconfig_arm64-armv8a-linux-gcc
-
The corresponding device can be created only if the following features
are supported by the CPU:
* Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
-Pre-Installation Configuration
-------------------------------
-
-Config File Options
-~~~~~~~~~~~~~~~~~~~
-
-The following options can be modified in the ``config`` file
-to enable caam_jr PMD.
-
-Please note that enabling debugging options may affect system performance.
-
-* ``CONFIG_RTE_LIBRTE_PMD_CAAM_JR`` (default ``n``)
- By default it is only enabled in common_linux config.
- Toggle compilation of the ``librte_pmd_caam_jr`` driver.
-
-* ``CONFIG_RTE_LIBRTE_PMD_CAAM_JR_BE`` (default ``n``)
- By default it is disabled.
- It can be used when the underlying hardware supports the CAAM in BE mode.
- LS1043A, LS1046A and LS1012A support CAAM in BE mode.
- LS1028A supports CAAM in LE mode.
-
-Installations
--------------
-To compile the caam_jr PMD for Linux arm64 gcc target, run the
-following ``make`` command:
-
-.. code-block:: console
-
- cd <DPDK-source-directory>
- make config T=arm64-armv8a-linux-gcc install
Enabling logs
-------------
Installation
------------
-To compile ccp PMD, it has to be enabled in the config/common_base file and openssl
-packages have to be installed in the build environment.
-
-* ``CONFIG_RTE_LIBRTE_PMD_CCP=y``
+To compile ccp PMD, openssl packages have to be installed in the build
+environment.
For Ubuntu 16.04 LTS use below to install openssl in the build system:
cd to the top-level DPDK directory
./usertools/dpdk-devbind.py -b igb_uio 0000:09:00.2
-In order to enable the ccp crypto PMD, user must set CONFIG_RTE_LIBRTE_PMD_CCP=y in config/common_base.
-
To use the PMD in an application, user must:
* Call rte_vdev_init("crypto_ccp") within the application.
.. code-block:: console
- sudo ./build/l2fwd-crypto -l 1 -n 4 --vdev "crypto_ccp" -- -p 0x1
+ sudo ./<build_dir>/examples/dpdk-l2fwd-crypto -l 1 -n 4 --vdev "crypto_ccp" -- -p 0x1
--chain CIPHER_HASH --cipher_op ENCRYPT --cipher_algo aes-cbc
--cipher_key 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f
--cipher_iv 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:ff
.. code-block:: console
- sudo ./build/l2fwd-crypto -l 1 -n 4 --vdev "crypto_ccp,ccp_auth_opt=1" -- -p 0x1
+ sudo ./<build_dir>/examples/dpdk-l2fwd-crypto -l 1 -n 4 --vdev "crypto_ccp,ccp_auth_opt=1" -- -p 0x1
--chain CIPHER_HASH --cipher_op ENCRYPT --cipher_algo aes-cbc
--cipher_key 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f
--cipher_iv 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:ff
- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
-Pre-Installation Configuration
-------------------------------
-
-Config File Options
-~~~~~~~~~~~~~~~~~~~
-
-Basic DPAA2 config file options are described in :ref:`dpaa2_overview`.
-In addition to those, the following options can be modified in the ``config`` file
-to enable DPAA2_SEC PMD.
-
-Please note that enabling debugging options may affect system performance.
-
-* ``CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC`` (default ``n``)
- By default it is only enabled in defconfig_arm64-dpaa-* config.
- Toggle compilation of the ``librte_pmd_dpaa2_sec`` driver.
-
-Installations
--------------
-To compile the DPAA2_SEC PMD for Linux arm64 gcc target, run the
-following ``make`` command:
-
-.. code-block:: console
-
- cd <DPDK-source-directory>
- make config T=arm64-dpaa-linux-gcc install
Enabling logs
-------------
- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
-Pre-Installation Configuration
-------------------------------
-
-Config File Options
-~~~~~~~~~~~~~~~~~~~
-
-Basic DPAA config file options are described in :ref:`dpaa_overview`.
-In addition to those, the following options can be modified in the ``config`` file
-to enable DPAA_SEC PMD.
-
-Please note that enabling debugging options may affect system performance.
-
-* ``CONFIG_RTE_LIBRTE_PMD_DPAA_SEC`` (default ``n``)
- By default it is only enabled in defconfig_arm64-dpaa-* config.
- Toggle compilation of the ``librte_pmd_dpaa_sec`` driver.
-
-Installations
--------------
-To compile the DPAA_SEC PMD for Linux arm64 gcc target, run the
-following ``make`` command:
-
-.. code-block:: console
-
- cd <DPDK-source-directory>
- make config T=arm64-dpaa-linux-gcc install
Enabling logs
-------------
* Build the multi buffer library (explained in Installation section).
-* Build DPDK as follows:
-
-.. code-block:: console
-
- make config T=x86_64-native-linux-gcc
- sed -i 's,\(CONFIG_RTE_LIBRTE_PMD_KASUMI\)=n,\1=y,' build/.config
- make
-
-
To use the PMD in an application, user must:
* Call rte_vdev_init("crypto_kasumi") within the application.
.. code-block:: console
- ./l2fwd-crypto -l 1 -n 4 --vdev="crypto_kasumi,socket_id=0,max_nb_sessions=128" \
+ ./dpdk-l2fwd-crypto -l 1 -n 4 --vdev="crypto_kasumi,socket_id=0,max_nb_sessions=128" \
-- -p 1 --cdev SW --chain CIPHER_ONLY --cipher_algo "kasumi-f8"
Extra notes on KASUMI F9
Installation
------------
-MVSAM CRYPTO PMD driver compilation is disabled by default due to external dependencies.
-Currently there are two driver specific compilation options in
-``config/common_base`` available:
-
-- ``CONFIG_RTE_LIBRTE_PMD_MVSAM_CRYPTO`` (default: ``n``)
-
- Toggle compilation of the librte_pmd_mvsam driver.
-
MVSAM CRYPTO PMD requires MUSDK built with EIP197 support thus following
extra option must be passed to the library configuration script:
.. code-block:: console
- ./l2fwd-crypto --vdev=eth_mvpp2,iface=eth0 --vdev=crypto_mvsam -- \
+ ./dpdk-l2fwd-crypto --vdev=eth_mvpp2,iface=eth0 --vdev=crypto_mvsam -- \
--cipher_op ENCRYPT --cipher_algo aes-cbc \
--cipher_key 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f \
--auth_op GENERATE --auth_algo sha1-hmac \
* Session-less APIs are not supported.
-Installation
-------------
-
-For compiling the Nitrox crypto PMD, please check if the
-CONFIG_RTE_LIBRTE_PMD_NITROX setting is set to `y` in config/common_base file.
-
-* ``CONFIG_RTE_LIBRTE_PMD_NITROX=y``
Initialization
--------------
.. code-block:: console
- ./l2fwd-crypto -l 1 -n 4 --vdev="crypto_null,socket_id=0,max_nb_sessions=128" \
+ ./dpdk-l2fwd-crypto -l 1 -n 4 --vdev="crypto_null,socket_id=0,max_nb_sessions=128" \
-- -p 1 --cdev SW --chain CIPHER_ONLY --cipher_algo "null"
* ``RTE_CRYPTO_ASYM_XFORM_RSA``
* ``RTE_CRYPTO_ASYM_XFORM_MODEX``
-Config flags
-------------
-
-For compiling the OCTEON TX crypto poll mode driver, please check if the
-CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO setting is set to `y` in
-config/common_base file.
-
-* ``CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO=y``
Compilation
-----------
.. code-block:: console
- ./test
+ ./dpdk-test
RTE>>cryptodev_octeontx_autotest
The asymmetric crypto operations on OCTEON TX crypto PMD may be verified by running the test
.. code-block:: console
- ./test
+ ./dpdk-test
RTE>>cryptodev_octeontx_asym_autotest
The OCTEON TX2 crypto PMD may be compiled natively on an OCTEON TX2 platform or
cross-compiled on an x86 platform.
-Enable OCTEON TX2 crypto PMD in your config file:
-
-* ``CONFIG_RTE_LIBRTE_PMD_OCTEONTX2_CRYPTO=y``
-
Refer to :doc:`../platform/octeontx2` for instructions to build your DPDK
application.
.. code-block:: console
- ./test
+ ./dpdk-test
RTE>>cryptodev_octeontx2_autotest
The asymmetric crypto operations on OCTEON TX2 crypto PMD may be verified by running the test
.. code-block:: console
- ./test
+ ./dpdk-test
RTE>>cryptodev_octeontx2_asym_autotest
Installation
------------
-To compile openssl PMD, it has to be enabled in the config/common_base file
-and appropriate openssl packages have to be installed in the build environment.
+To compile openssl PMD, appropriate openssl packages have to be installed
+in the build environment.
The newest openssl library version is supported:
.. code-block:: console
- sudo ./build/l2fwd-crypto -l 0-1 -n 4 --vdev "crypto_openssl"
+ sudo ./<build_dir>/examples/dpdk-l2fwd-crypto -l 0-1 -n 4 --vdev "crypto_openssl"
--vdev "crypto_openssl"-- -p 0x3 --chain CIPHER_HASH
--cipher_op ENCRYPT --cipher_algo AES_CBC
--cipher_key 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f
Further information on configuring, building and installing DPDK is described
:doc:`here <../linux_gsg/build_dpdk>`.
-
-Quick instructions for QAT cryptodev PMD are as follows:
-
-.. code-block:: console
-
- cd to the top-level DPDK directory
- make defconfig
- sed -i 's,\(CONFIG_RTE_LIBRTE_PMD_QAT_SYM\)=n,\1=y,' build/.config
- or/and
- sed -i 's,\(CONFIG_RTE_LIBRTE_PMD_QAT_ASYM\)=n,\1=y,' build/.config
- make
-
-Quick instructions for QAT compressdev PMD are as follows:
-
-.. code-block:: console
-
- cd to the top-level DPDK directory
- make defconfig
- make
-
-
.. _building_qat_config:
Build Configuration
.. code-block:: console
- CONFIG_RTE_LIBRTE_PMD_QAT=y
- CONFIG_RTE_LIBRTE_PMD_QAT_SYM=n
- CONFIG_RTE_LIBRTE_PMD_QAT_ASYM=n
- CONFIG_RTE_PMD_QAT_MAX_PCI_DEVICES=48
- CONFIG_RTE_PMD_QAT_COMP_IM_BUFFER_SIZE=65536
-
-CONFIG_RTE_LIBRTE_PMD_QAT must be enabled for any QAT PMD to be built.
+ RTE_PMD_QAT_MAX_PCI_DEVICES=48
+ RTE_PMD_QAT_COMP_IM_BUFFER_SIZE=65536
Both QAT SYM PMD and QAT ASYM PMD have an external dependency on libcrypto, so are not
-built by default. CONFIG_RTE_LIBRTE_PMD_QAT_SYM/ASYM should be enabled to build them.
+built by default.
-The QAT compressdev PMD has no external dependencies, so needs no configuration
-options and is built by default.
+The QAT compressdev PMD has no external dependencies, so is built by default.
The number of VFs per PF varies - see table below. If multiple QAT packages are
-installed on a platform then CONFIG_RTE_PMD_QAT_MAX_PCI_DEVICES should be
+installed on a platform then RTE_PMD_QAT_MAX_PCI_DEVICES should be
adjusted to the number of VFs which the QAT common code will need to handle.
.. Note::
There are separate config items (not QAT-specific) for max cryptodevs
- CONFIG_RTE_CRYPTO_MAX_DEVS and max compressdevs CONFIG_RTE_COMPRESS_MAX_DEVS,
+ RTE_CRYPTO_MAX_DEVS and max compressdevs RTE_COMPRESS_MAX_DEVS,
if necessary these should be adjusted to handle the total of QAT and other
devices which the process will use. In particular for crypto, where each
QAT VF may expose two crypto devices, sym and asym, it may happen that the
number of devices will be bigger than MAX_DEVS and the process will show an error
- during PMD initialisation. To avoid this problem CONFIG_RTE_CRYPTO_MAX_DEVS may be
+ during PMD initialisation. To avoid this problem RTE_CRYPTO_MAX_DEVS may be
increased or -w, pci-whitelist domain:bus:devid:func option may be used.
QAT compression PMD needs intermediate buffers to support Deflate compression
-with Dynamic Huffman encoding. CONFIG_RTE_PMD_QAT_COMP_IM_BUFFER_SIZE
+with Dynamic Huffman encoding. RTE_PMD_QAT_COMP_IM_BUFFER_SIZE
specifies the size of a single buffer, the PMD will allocate a multiple of these,
plus some extra space for associated meta-data. For GEN2 devices, 20 buffers are
allocated while for GEN1 devices, 12 buffers are allocated, plus 1472 bytes overhead.
insmod ./drivers/crypto/qat/qat_common/intel_qat.ko
insmod ./drivers/crypto/qat/qat_dh895xcc/qat_dh895xcc.ko
-
.. Note::
If you see the following warning in ``/var/log/messages`` it can be ignored:
QAT SYM crypto PMD can be tested by running the test application::
- make defconfig
- make -j
- cd ./build/app
- ./test -l1 -n1 -w <your qat bdf>
+ cd ./<build_dir>/app/test
+ ./dpdk-test -l1 -n1 -w <your qat bdf>
RTE>>cryptodev_qat_autotest
QAT ASYM crypto PMD can be tested by running the test application::
- make defconfig
- make -j
- cd ./build/app
- ./test -l1 -n1 -w <your qat bdf>
+ cd ./<build_dir>/app/test
+ ./dpdk-test -l1 -n1 -w <your qat bdf>
RTE>>cryptodev_qat_asym_autotest
QAT compression PMD can be tested by running the test application::
- make defconfig
- sed -i 's,\(CONFIG_RTE_COMPRESSDEV_TEST\)=n,\1=y,' build/.config
- make -j
- cd ./build/app
- ./test -l1 -n1 -w <your qat bdf>
+ cd ./<build_dir>/app/test
+ ./dpdk-test -l1 -n1 -w <your qat bdf>
RTE>>compressdev_autotest
The global RTE_LOG_DP_LEVEL overrides data-path trace so must be set to
RTE_LOG_DEBUG to see all the trace. This variable is in config/rte_config.h
- for meson build and config/common_base for gnu make.
+ for meson build.
Also the dynamic global log level overrides both sets of trace, so e.g. no
QAT trace would display in this case::
is enabled.
-Installation
-------------
-
-To build DPDK with CRYTPO_SCHEDULER_PMD the user is required to set
-CONFIG_RTE_LIBRTE_PMD_CRYPTO_SCHEDULER=y in config/common_base, and
-recompile DPDK
-
-
Initialization
--------------
* Build the multi buffer library (explained in Installation section).
-* Build DPDK as follows:
-
-.. code-block:: console
-
- make config T=x86_64-native-linux-gcc
- sed -i 's,\(CONFIG_RTE_LIBRTE_PMD_SNOW3G\)=n,\1=y,' build/.config
- make
-
To use the PMD in an application, user must:
* Call rte_vdev_init("crypto_snow3g") within the application.
.. code-block:: console
- ./l2fwd-crypto -l 1 -n 4 --vdev="crypto_snow3g,socket_id=0,max_nb_sessions=128" \
+ ./dpdk-l2fwd-crypto -l 1 -n 4 --vdev="crypto_snow3g,socket_id=0,max_nb_sessions=128" \
-- -p 1 --cdev SW --chain CIPHER_ONLY --cipher_algo "snow3g-uea2"
.. code-block:: console
reserve enough huge pages
- cd to the top-level DPDK directory
- export RTE_TARGET=x86_64-native-linux-gcc
- export RTE_SDK=`pwd`
- cd to app/test
- type the command "make" to compile
- run the tests with "./test"
- type the command "cryptodev_virtio_autotest" to test
+ cd to <build_dir>
+ meson test cryptodev_virtio_autotest
The performance can be tested as below:
.. code-block:: console
reserve enough huge pages
- cd to the top-level DPDK directory
- export RTE_TARGET=x86_64-native-linux-gcc
- export RTE_SDK=`pwd`
- cd to app/test-crypto-perf
- type the command "make" to compile
- run the tests with the following command:
-
- ./dpdk-test-crypto-perf -l 0,1 -- --devtype crypto_virtio \
+ cd to <build_dir>
+
+ ./app/dpdk-test-crypto-perf -l 0,1 -- --devtype crypto_virtio \
--ptest throughput --optype cipher-then-auth --cipher-algo aes-cbc \
--cipher-op encrypt --cipher-key-sz 16 --auth-algo sha1-hmac \
--auth-op generate --auth-key-sz 64 --digest-sz 12 \
* Build the multi buffer library (explained in Installation section).
-* Build DPDK as follows:
-
-.. code-block:: console
-
- make config T=x86_64-native-linux-gcc
- sed -i 's,\(CONFIG_RTE_LIBRTE_PMD_ZUC\)=n,\1=y,' build/.config
- make
-
To use the PMD in an application, user must:
* Call rte_vdev_init("crypto_zuc") within the application.
.. code-block:: console
- ./l2fwd-crypto -l 1 -n 4 --vdev="crypto_zuc,socket_id=0,max_nb_sessions=128" \
+ ./dpdk-l2fwd-crypto -l 1 -n 4 --vdev="crypto_zuc,socket_id=0,max_nb_sessions=128" \
-- -p 1 --cdev SW --chain CIPHER_ONLY --cipher_algo "zuc-eea3"