Installation
------------
-Section 3 of the DPDK manual provides instuctions on installing and compiling DPDK. The
+Section 3 of the DPDK manual provides instructions on installing and compiling DPDK. The
default set of bbdev compile flags may be found in config/common_base, where for example
the flag to build the FPGA 5GNR FEC device, ``CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC``,
-is already set. It is assumed DPDK has been compiled using for instance:
-
-.. code-block:: console
-
- make install T=x86_64-native-linuxapp-gcc
-
+is already set.
DPDK requires hugepages to be configured as detailed in section 2 of the DPDK manual.
The bbdev test application has been tested with a configuration 40 x 1GB hugepages. The
Installation
--------------
-Section 3 of the DPDK manual provides instuctions on installing and compiling DPDK. The
+Section 3 of the DPDK manual provides instructions on installing and compiling DPDK. The
default set of bbdev compile flags may be found in config/common_base, where for example
the flag to build the FPGA LTE FEC device, ``CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC``, is already
-set. It is assumed DPDK has been compiled using for instance:
-
-.. code-block:: console
-
- make install T=x86_64-native-linuxapp-gcc
-
+set.
DPDK requires hugepages to be configured as detailed in section 2 of the DPDK manual.
The bbdev test application has been tested with a configuration 40 x 1GB hugepages. The
echo -n 0000:00:04.0 > /sys/bus/pci/drivers/virtio-pci/unbind
echo "1af4 1054" > /sys/bus/pci/drivers/uio_pci_generic/new_id
-Finally the front-end virtio crypto PMD driver can be installed:
-
-.. code-block:: console
-
- cd to the top-level DPDK directory
- sed -i 's,\(CONFIG_RTE_LIBRTE_PMD_VIRTIO_CRYPTO\)=n,\1=y,' config/common_base
- make config T=x86_64-native-linux-gcc
- make install T=x86_64-native-linux-gcc
+Finally the front-end virtio crypto PMD driver can be installed.
Tests
-----
Here we use Docker as container engine. It also applies to LXC, Rocket with
some minor changes.
-#. Compile DPDK.
-
- .. code-block:: console
-
- make install RTE_SDK=`pwd` T=x86_64-native-linux-gcc
-
#. Write a Dockerfile like below.
.. code-block:: console
Configurations before running DPDK
----------------------------------
-1. Build the DPDK target and reserve huge pages.
+1. Reserve huge pages.
See the earlier section on :ref:`linux_gsg_hugepages` for more details.
- The following shell commands may help with building and configuration:
-
.. code-block:: console
- # Build DPDK target.
- cd dpdk_folder
- make install T=x86_64-native-linux-gcc -j
-
# Get the hugepage size.
awk '/Hugepagesize/ {print $2}' /proc/meminfo
* Linux igb_uio
* BSD nic_uio
-Compiling BNXT PMD
-------------------
-
-To compile the BNXT PMD:
-
-.. code-block:: console
-
- make config T=x86_64-native-linux-gcc && make // for x86-64
- make config T=x86_32-native-linux-gcc && make // for x86-32
- make config T=armv8a-linux-gcc && make // for ARMv8
+Running BNXT PMD
+----------------
Bind the device to one of the kernel modules listed above
./dpdk-devbind.py -b vfio-pci|igb_uio|uio_pci_generic bus_id:device_id.function_id
-Load an application (e.g. testpmd) with a default configuration (e.g. a single
-TX /RX queue):
-
-.. code-block:: console
-
- ./testpmd -c 0xF -n 4 -- -i --portmask=0x1 --nb-cores=2
-
-Running BNXT PMD
-----------------
-
The BNXT PMD can run on PF or VF.
PCI-SIG Single Root I/O Virtualization (SR-IOV) involves the direct assignment
Driver Compilation
------------------
-To compile a PMD for a platform, run make with appropriate target as shown below.
-Use "make" command in Linux and "gmake" in FreeBSD. This will also build testpmd.
+To compile a PMD for a platform, build DPDK
+as described in the "Getting Started Guide" for your platform.
+This will also build testpmd.
-To check available targets:
-
-.. code-block:: console
-
- cd <DPDK-source-directory>
- make showconfigs
-
-Example output:
-
-.. code-block:: console
-
- arm-armv7a-linux-gcc
- arm64-armv8a-linux-gcc
- arm64-dpaa-linux-gcc
- arm64-thunderx-linux-gcc
- arm64-xgene1-linux-gcc
- i686-native-linux-gcc
- i686-native-linux-icc
- ppc_64-power8-linux-gcc
- x86_64-native-freebsd-clang
- x86_64-native-freebsd-gcc
- x86_64-native-linux-clang
- x86_64-native-linux-gcc
- x86_64-native-linux-icc
- x86_x32-native-linux-gcc
-
-To compile a PMD for Linux x86_64 gcc target, run the following "make" command:
-
-.. code-block:: console
-
- make install T=x86_64-native-linux-gcc
-
-Use ARM (ThunderX, DPAA, X-Gene) or PowerPC target for respective platform.
-
-For more information, refer to the :ref:`Getting Started Guide for Linux <linux_gsg>`
-or :ref:`Getting Started Guide for FreeBSD <freebsd_gsg>` depending on your platform.
+Detailed instructions are available
+in the :doc:`meson build guide <../prog_guide/build-sdk-meson>`.
Running testpmd in Linux
------------------------
The ``testpmd`` application is compiled as part of the main compilation of the DPDK libraries and tools.
Refer to the DPDK Getting Started Guides for details.
-The basic compilation steps are:
-
-#. Set the required environmental variables and go to the source directory:
-
- .. code-block:: console
-
- export RTE_SDK=/path/to/rte_sdk
- cd $RTE_SDK
-
-#. Set the compilation target. For example:
-
- .. code-block:: console
-
- export RTE_TARGET=x86_64-native-linux-gcc
-
-#. Build the application:
-
- .. code-block:: console
-
- make install T=$RTE_TARGET
-
- The compiled application will be located at:
-
- .. code-block:: console
-
- $RTE_SDK/$RTE_TARGET/app/testpmd