if "RTE_TARGET" in os.environ:
dpdk_target = os.environ["RTE_TARGET"]
else:
- dpdk_target = "x86_64-native-linuxapp-gcc"
+ dpdk_target = "x86_64-native-linux-gcc"
parser = argparse.ArgumentParser(
description='BBdev Unit Test Application',
# how many workers to run tests with. FreeBSD doesn't support multiple primary
# processes, so make it 1, otherwise make it 4. ignored for non-parallel tests
-n_processes = 1 if "bsdapp" in target else 4
+n_processes = 1 if "bsd" in target else 4
runner = autotest_runner.AutotestRunner(cmdline, target, test_blacklist,
test_whitelist, n_processes)
const char *prgname; /* to be set to argv[0] */
-static const char *recursive_call; /* used in linuxapp for MP and other tests */
+static const char *recursive_call; /* used in linux for MP and other tests */
static int
no_action(void){ return 0; }
--- /dev/null
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Cavium, Inc
+#
+
+#include "common_linux"
+
+CONFIG_RTE_MACHINE="armv8a"
+
+CONFIG_RTE_ARCH="arm64"
+CONFIG_RTE_ARCH_ARM64=y
+CONFIG_RTE_ARCH_64=y
+
+CONFIG_RTE_FORCE_INTRINSICS=y
+
+# Maximum available cache line size in arm64 implementations.
+# Setting to maximum available cache line size in generic config
+# to address minimum DMA alignment across all arm64 implementations.
+CONFIG_RTE_CACHE_LINE_SIZE=128
+
+CONFIG_RTE_USE_C11_MEM_MODEL=y
+
+# Accelarate rte_memcpy. Be sure to run unit test (memcpy_perf_autotest)
+# to determine the best threshold in code. Refer to notes in source file
+# (lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h) for more info.
+CONFIG_RTE_ARCH_ARM64_MEMCPY=n
+#CONFIG_RTE_ARM64_MEMCPY_ALIGNED_THRESHOLD=2048
+#CONFIG_RTE_ARM64_MEMCPY_UNALIGNED_THRESHOLD=512
+# Leave below RTE_ARM64_MEMCPY_xxx options commented out, unless there're
+# strong reasons.
+#CONFIG_RTE_ARM64_MEMCPY_SKIP_GCC_VER_CHECK=n
+#CONFIG_RTE_ARM64_MEMCPY_ALIGN_MASK=0xF
+#CONFIG_RTE_ARM64_MEMCPY_STRICT_ALIGN=n
+
+CONFIG_RTE_LIBRTE_FM10K_PMD=n
+CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
+CONFIG_RTE_LIBRTE_AVP_PMD=n
+
+CONFIG_RTE_SCHED_VECTOR=n
+++ /dev/null
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Cavium, Inc
-#
-
-#include "common_linuxapp"
-
-CONFIG_RTE_MACHINE="armv8a"
-
-CONFIG_RTE_ARCH="arm64"
-CONFIG_RTE_ARCH_ARM64=y
-CONFIG_RTE_ARCH_64=y
-
-CONFIG_RTE_FORCE_INTRINSICS=y
-
-# Maximum available cache line size in arm64 implementations.
-# Setting to maximum available cache line size in generic config
-# to address minimum DMA alignment across all arm64 implementations.
-CONFIG_RTE_CACHE_LINE_SIZE=128
-
-CONFIG_RTE_USE_C11_MEM_MODEL=y
-
-# Accelarate rte_memcpy. Be sure to run unit test (memcpy_perf_autotest)
-# to determine the best threshold in code. Refer to notes in source file
-# (lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h) for more info.
-CONFIG_RTE_ARCH_ARM64_MEMCPY=n
-#CONFIG_RTE_ARM64_MEMCPY_ALIGNED_THRESHOLD=2048
-#CONFIG_RTE_ARM64_MEMCPY_UNALIGNED_THRESHOLD=512
-# Leave below RTE_ARM64_MEMCPY_xxx options commented out, unless there're
-# strong reasons.
-#CONFIG_RTE_ARM64_MEMCPY_SKIP_GCC_VER_CHECK=n
-#CONFIG_RTE_ARM64_MEMCPY_ALIGN_MASK=0xF
-#CONFIG_RTE_ARM64_MEMCPY_STRICT_ALIGN=n
-
-CONFIG_RTE_LIBRTE_FM10K_PMD=n
-CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
-CONFIG_RTE_LIBRTE_AVP_PMD=n
-
-CONFIG_RTE_SCHED_VECTOR=n
+++ /dev/null
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2016 Intel Corporation
-
-#include "common_base"
-
-CONFIG_RTE_EXEC_ENV="bsdapp"
-CONFIG_RTE_EXEC_ENV_BSDAPP=y
-CONFIG_RTE_EXEC_ENV_FREEBSD=y
-
-#
-# FreeBSD contiguous memory driver settings
-#
-CONFIG_RTE_CONTIGMEM_MAX_NUM_BUFS=64
-CONFIG_RTE_CONTIGMEM_DEFAULT_NUM_BUFS=2
-CONFIG_RTE_CONTIGMEM_DEFAULT_BUF_SIZE=1024*1024*1024
--- /dev/null
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2010-2016 Intel Corporation
+
+#include "common_base"
+
+CONFIG_RTE_EXEC_ENV="bsdapp"
+CONFIG_RTE_EXEC_ENV_BSDAPP=y
+CONFIG_RTE_EXEC_ENV_FREEBSD=y
+
+#
+# FreeBSD contiguous memory driver settings
+#
+CONFIG_RTE_CONTIGMEM_MAX_NUM_BUFS=64
+CONFIG_RTE_CONTIGMEM_DEFAULT_NUM_BUFS=2
+CONFIG_RTE_CONTIGMEM_DEFAULT_BUF_SIZE=1024*1024*1024
--- /dev/null
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2010-2016 Intel Corporation
+
+#include "common_base"
+
+CONFIG_RTE_EXEC_ENV="linuxapp"
+CONFIG_RTE_EXEC_ENV_LINUX=y
+CONFIG_RTE_EXEC_ENV_LINUXAPP=y
+
+CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=y
+CONFIG_RTE_EAL_IGB_UIO=y
+CONFIG_RTE_EAL_VFIO=y
+CONFIG_RTE_KNI_KMOD=y
+CONFIG_RTE_LIBRTE_KNI=y
+CONFIG_RTE_LIBRTE_PMD_KNI=y
+CONFIG_RTE_LIBRTE_VHOST=y
+CONFIG_RTE_LIBRTE_VHOST_NUMA=y
+CONFIG_RTE_LIBRTE_VHOST_POSTCOPY=n
+CONFIG_RTE_LIBRTE_PMD_VHOST=y
+CONFIG_RTE_LIBRTE_IFC_PMD=y
+CONFIG_RTE_LIBRTE_PMD_AF_PACKET=y
+CONFIG_RTE_LIBRTE_PMD_SOFTNIC=y
+CONFIG_RTE_LIBRTE_PMD_TAP=y
+CONFIG_RTE_LIBRTE_AVP_PMD=y
+CONFIG_RTE_LIBRTE_VDEV_NETVSC_PMD=y
+CONFIG_RTE_LIBRTE_NFP_PMD=y
+CONFIG_RTE_LIBRTE_POWER=y
+CONFIG_RTE_VIRTIO_USER=y
+CONFIG_RTE_PROC_INFO=y
+
+CONFIG_RTE_LIBRTE_VMBUS=y
+CONFIG_RTE_LIBRTE_NETVSC_PMD=y
+
+#
+# Common libraries, before Bus/PMDs
+#
+CONFIG_RTE_LIBRTE_COMMON_DPAAX=y
+
+# NXP DPAA BUS and drivers
+CONFIG_RTE_LIBRTE_DPAA_BUS=y
+CONFIG_RTE_LIBRTE_DPAA_MEMPOOL=y
+CONFIG_RTE_LIBRTE_DPAA_PMD=y
+CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV=y
+CONFIG_RTE_LIBRTE_PMD_DPAA_SEC=y
+CONFIG_RTE_LIBRTE_PMD_CAAM_JR=y
+
+# NXP FSLMC BUS and DPAA2 drivers
+CONFIG_RTE_LIBRTE_FSLMC_BUS=y
+CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL=y
+CONFIG_RTE_LIBRTE_DPAA2_PMD=y
+CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV=y
+CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC=y
+CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV=y
+CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV=y
+
+#
+# NXP ENETC PMD Driver
+#
+CONFIG_RTE_LIBRTE_ENETC_PMD=y
+++ /dev/null
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2016 Intel Corporation
-
-#include "common_base"
-
-CONFIG_RTE_EXEC_ENV="linuxapp"
-CONFIG_RTE_EXEC_ENV_LINUX=y
-CONFIG_RTE_EXEC_ENV_LINUXAPP=y
-
-CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=y
-CONFIG_RTE_EAL_IGB_UIO=y
-CONFIG_RTE_EAL_VFIO=y
-CONFIG_RTE_KNI_KMOD=y
-CONFIG_RTE_LIBRTE_KNI=y
-CONFIG_RTE_LIBRTE_PMD_KNI=y
-CONFIG_RTE_LIBRTE_VHOST=y
-CONFIG_RTE_LIBRTE_VHOST_NUMA=y
-CONFIG_RTE_LIBRTE_VHOST_POSTCOPY=n
-CONFIG_RTE_LIBRTE_PMD_VHOST=y
-CONFIG_RTE_LIBRTE_IFC_PMD=y
-CONFIG_RTE_LIBRTE_PMD_AF_PACKET=y
-CONFIG_RTE_LIBRTE_PMD_SOFTNIC=y
-CONFIG_RTE_LIBRTE_PMD_TAP=y
-CONFIG_RTE_LIBRTE_AVP_PMD=y
-CONFIG_RTE_LIBRTE_VDEV_NETVSC_PMD=y
-CONFIG_RTE_LIBRTE_NFP_PMD=y
-CONFIG_RTE_LIBRTE_POWER=y
-CONFIG_RTE_VIRTIO_USER=y
-CONFIG_RTE_PROC_INFO=y
-
-CONFIG_RTE_LIBRTE_VMBUS=y
-CONFIG_RTE_LIBRTE_NETVSC_PMD=y
-
-#
-# Common libraries, before Bus/PMDs
-#
-CONFIG_RTE_LIBRTE_COMMON_DPAAX=y
-
-# NXP DPAA BUS and drivers
-CONFIG_RTE_LIBRTE_DPAA_BUS=y
-CONFIG_RTE_LIBRTE_DPAA_MEMPOOL=y
-CONFIG_RTE_LIBRTE_DPAA_PMD=y
-CONFIG_RTE_LIBRTE_PMD_DPAA_EVENTDEV=y
-CONFIG_RTE_LIBRTE_PMD_DPAA_SEC=y
-CONFIG_RTE_LIBRTE_PMD_CAAM_JR=y
-
-# NXP FSLMC BUS and DPAA2 drivers
-CONFIG_RTE_LIBRTE_FSLMC_BUS=y
-CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL=y
-CONFIG_RTE_LIBRTE_DPAA2_PMD=y
-CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV=y
-CONFIG_RTE_LIBRTE_PMD_DPAA2_SEC=y
-CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV=y
-CONFIG_RTE_LIBRTE_PMD_DPAA2_QDMA_RAWDEV=y
-
-#
-# NXP ENETC PMD Driver
-#
-CONFIG_RTE_LIBRTE_ENETC_PMD=y
--- /dev/null
+defconfig_arm-armv7a-linuxapp-gcc
\ No newline at end of file
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (C) 2015 RehiveTech. All right reserved.
-#include "common_linuxapp"
+#include "common_linux"
CONFIG_RTE_MACHINE="armv7a"
--- /dev/null
+defconfig_arm64-armv8a-linuxapp-clang
\ No newline at end of file
--- /dev/null
+defconfig_arm64-armv8a-linuxapp-gcc
\ No newline at end of file
# Copyright(c) 2017 Cavium, Inc
#
-#include "common_armv8a_linuxapp"
+#include "common_armv8a_linux"
CONFIG_RTE_TOOLCHAIN="clang"
CONFIG_RTE_TOOLCHAIN_CLANG=y
# Copyright(c) 2015 Cavium, Inc
#
-#include "common_armv8a_linuxapp"
+#include "common_armv8a_linux"
CONFIG_RTE_TOOLCHAIN="gcc"
CONFIG_RTE_TOOLCHAIN_GCC=y
--- /dev/null
+defconfig_arm64-bluefield-linuxapp-gcc
\ No newline at end of file
# Copyright 2019 Mellanox Technologies, Ltd
#
-#include "defconfig_arm64-armv8a-linuxapp-gcc"
+#include "defconfig_arm64-armv8a-linux-gcc"
# Mellanox BlueField
CONFIG_RTE_ARCH_ARM_TUNE="cortex-a72"
--- /dev/null
+defconfig_arm64-dpaa-linuxapp-gcc
\ No newline at end of file
# Copyright 2016 Freescale Semiconductor, Inc.
# Copyright 2017 NXP
-#include "defconfig_arm64-armv8a-linuxapp-gcc"
+#include "defconfig_arm64-armv8a-linux-gcc"
# NXP (Freescale) - Soc Architecture with FMAN, QMAN & BMAN support
CONFIG_RTE_MACHINE="dpaa"
--- /dev/null
+defconfig_arm64-dpaa2-linuxapp-gcc
\ No newline at end of file
# Copyright 2016 NXP
#
-#include "defconfig_arm64-armv8a-linuxapp-gcc"
+#include "defconfig_arm64-armv8a-linux-gcc"
# NXP (Freescale) - Soc Architecture with WRIOP and QBMAN support
CONFIG_RTE_MACHINE="dpaa2"
--- /dev/null
+defconfig_arm64-stingray-linuxapp-gcc
\ No newline at end of file
# Copyright (C) Broadcom 2017-2018. All rights reserved.
#
-#include "defconfig_arm64-armv8a-linuxapp-gcc"
+#include "defconfig_arm64-armv8a-linux-gcc"
# Broadcom - Stingray
CONFIG_RTE_MACHINE="armv8a"
--- /dev/null
+defconfig_arm64-thunderx-linuxapp-gcc
\ No newline at end of file
# Copyright(c) 2015 Cavium, Inc
#
-#include "defconfig_arm64-armv8a-linuxapp-gcc"
+#include "defconfig_arm64-armv8a-linux-gcc"
CONFIG_RTE_MACHINE="thunderx"
--- /dev/null
+defconfig_arm64-xgene1-linuxapp-gcc
\ No newline at end of file
# Copyright(c) 2015 Cavium, Inc
#
-#include "defconfig_arm64-armv8a-linuxapp-gcc"
+#include "defconfig_arm64-armv8a-linux-gcc"
CONFIG_RTE_MACHINE="xgene1"
CONFIG_RTE_CACHE_LINE_SIZE=64
--- /dev/null
+defconfig_i686-native-linuxapp-gcc
\ No newline at end of file
--- /dev/null
+defconfig_i686-native-linuxapp-icc
\ No newline at end of file
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2010-2014 Intel Corporation
-#include "common_linuxapp"
+#include "common_linux"
CONFIG_RTE_MACHINE="native"
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2010-2014 Intel Corporation
-#include "common_linuxapp"
+#include "common_linux"
CONFIG_RTE_MACHINE="native"
--- /dev/null
+defconfig_ppc_64-power8-linuxapp-gcc
\ No newline at end of file
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#include "common_linuxapp"
+#include "common_linux"
CONFIG_RTE_MACHINE="power8"
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2010-2014 Intel Corporation
-#include "common_bsdapp"
+#include "common_freebsd"
CONFIG_RTE_MACHINE="native"
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2010-2014 Intel Corporation
-#include "common_bsdapp"
+#include "common_freebsd"
CONFIG_RTE_MACHINE="native"
--- /dev/null
+defconfig_x86_64-native-bsdapp-clang
\ No newline at end of file
--- /dev/null
+defconfig_x86_64-native-bsdapp-gcc
\ No newline at end of file
--- /dev/null
+defconfig_x86_64-native-linuxapp-clang
\ No newline at end of file
--- /dev/null
+defconfig_x86_64-native-linuxapp-gcc
\ No newline at end of file
--- /dev/null
+defconfig_x86_64-native-linuxapp-icc
\ No newline at end of file
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2010-2014 Intel Corporation
-#include "common_linuxapp"
+#include "common_linux"
CONFIG_RTE_MACHINE="native"
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2010-2014 Intel Corporation
-#include "common_linuxapp"
+#include "common_linux"
CONFIG_RTE_MACHINE="native"
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2010-2014 Intel Corporation
-#include "common_linuxapp"
+#include "common_linux"
CONFIG_RTE_MACHINE="native"
--- /dev/null
+defconfig_x86_x32-native-linuxapp-gcc
\ No newline at end of file
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2010-2014 Intel Corporation
-#include "common_linuxapp"
+#include "common_linux"
CONFIG_RTE_MACHINE="native"
source_dirs="app buildtools drivers examples lib"
-skip_bsd="( -name bsdapp ) -prune -o"
-skip_linux="( -name linuxapp ) -prune -o"
+skip_bsd="( -name freebsd ) -prune -o"
+skip_linux="( -name linux ) -prune -o"
skip_arch="( -name arch ) -prune -o"
skip_sse="( -name *_sse*.[chS] ) -prune -o"
skip_avx="( -name *_avx*.[chS] ) -prune -o"
if [ -n "$2" ]; then
check_valid_target $2
- echo $2 | grep -q "linuxapp-" || linux=false
- echo $2 | grep -q "bsdapp-" || bsd=false
+ echo $2 | grep -q "linux" || linux=false
+ echo $2 | grep -q "bsd" || bsd=false
echo $2 | grep -q "x86_64-" || x86_64=false
echo $2 | grep -q "arm-" || arm_32=false
echo $2 | grep -q "arm64-" || arm_64=false
-v verbose build
config: defconfig[[~][+]option1[[~][+]option2...]]
- Example: x86_64-native-linuxapp-gcc+debug~RXTX_CALLBACKS
+ Example: x86_64-native-linux-gcc+debug~RXTX_CALLBACKS
The lowercase options are defined inside $(basename $0).
The uppercase options can be the end of a defconfig option
to enable if prefixed with '+' or to disable if prefixed with '~'.
abicheck=abi-compliance-checker
abidump=abi-dumper
default_dst=abi-check
-default_target=x86_64-native-linuxapp-gcc
+default_target=x86_64-native-linux-gcc
# trap on error
err_report() {
Basic build
make defconfig && make
or
- make config T=x86_64-native-linuxapp-gcc && make
+ make config T=x86_64-native-linux-gcc && make
Build commands
config get configuration from target template (T=)
defconfig auto-select target template based on arch, OS, etc.
.. code-block:: console
cd <DPDK-source-directory>
- make config T=arm64-thunderx-linuxapp-gcc install
+ make config T=arm64-thunderx-linux-gcc install
Initialization
reserve enough huge pages
cd to the top-level DPDK directory
- export RTE_TARGET=arm64-thunderx-linuxapp-gcc
+ export RTE_TARGET=arm64-thunderx-linux-gcc
export RTE_SDK=`pwd`
cd to app/test
type the command "make" to compile
Environment or Architecture-specific Sources
--------------------------------------------
-In DPDK and DPDK applications, some code is specific to an architecture (i686, x86_64) or to an executive environment (bsdapp or linuxapp) and so on.
+In DPDK and DPDK applications, some code is specific to an architecture (i686, x86_64) or to an executive environment (freebsd or linux) and so on.
As far as is possible, all such instances of architecture or env-specific code should be provided via standard APIs in the EAL.
By convention, a file is common if it is not located in a directory indicating that it is specific.
For instance, a file located in a subdir of "x86_64" directory is specific to this architecture.
-A file located in a subdir of "linuxapp" is specific to this execution environment.
+A file located in a subdir of "linux" is specific to this execution environment.
.. note::
.. code-block:: console
- # DPDK file config/common_linuxapp, config/common_bsdapp, etc.
+ # DPDK file config/common_linux, config/common_freebsd, etc.
CONFIG_RTE_<LIBRARY_NAME>_STATS_COLLECT=y/n
The default value for this DPDK configuration file variable (either "yes" or
Compilation of patches and changes should be tested using the ``test-build.sh`` script in the ``devtools``
directory of the DPDK repo::
- devtools/test-build.sh x86_64-native-linuxapp-gcc+next+shared
+ devtools/test-build.sh x86_64-native-linux-gcc+next+shared
The script usage is::
Examples of configs are::
- x86_64-native-linuxapp-gcc
- x86_64-native-linuxapp-gcc+next+shared
- x86_64-native-linuxapp-clang+shared
+ x86_64-native-linux-gcc
+ x86_64-native-linux-gcc+next+shared
+ x86_64-native-linux-clang+shared
The builds can be modified via the following environmental variables:
The recommended configurations and options to test compilation prior to submitting patches are::
- x86_64-native-linuxapp-gcc+shared+next
- x86_64-native-linuxapp-clang+shared
- i686-native-linuxapp-gcc
+ x86_64-native-linux-gcc+shared+next
+ x86_64-native-linux-clang+shared
+ i686-native-linux-gcc
export DPDK_DEP_ZLIB=y
export DPDK_DEP_PCAP=y
For example::
# Check between the previous and latest commit:
- ./devtools/validate-abi.sh HEAD~1 HEAD x86_64-native-linuxapp-gcc
+ ./devtools/validate-abi.sh HEAD~1 HEAD x86_64-native-linux-gcc
# Check between two tags:
- ./devtools/validate-abi.sh v2.0.0 v2.1.0 x86_64-native-linuxapp-gcc
+ ./devtools/validate-abi.sh v2.0.0 v2.1.0 x86_64-native-linux-gcc
# Check between git master and local topic-branch "vhost-hacking":
- ./devtools/validate-abi.sh master vhost-hacking x86_64-native-linuxapp-gcc
+ ./devtools/validate-abi.sh master vhost-hacking x86_64-native-linux-gcc
After the validation script completes (it can take a while since it need to
compile both tags) it will create compatibility reports in the
make -C $ARMV8_CRYPTO_LIB_PATH/
* Set CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO=y in
- config/defconfig_arm64-armv8a-linuxapp-gcc
+ config/defconfig_arm64-armv8a-linux-gcc
The corresponding device can be created only if the following features
are supported by the CPU:
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_linuxapp config.
+ 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.
e.g. LS1043A, LS1046A supports CAAM in BE mode.
- BE mode is enabled by default in defconfig-arm64-dpaa-linuxapp-gcc.
+ BE mode is enabled by default in defconfig-arm64-dpaa-linux-gcc.
Installations
-------------
.. code-block:: console
cd <DPDK-source-directory>
- make config T=arm64-armv8a-linuxapp-gcc install
+ make config T=arm64-armv8a-linux-gcc install
Enabling logs
-------------
.. code-block:: console
cd <DPDK-source-directory>
- make config T=arm64-dpaa2-linuxapp-gcc install
+ make config T=arm64-dpaa2-linux-gcc install
Enabling logs
-------------
.. code-block:: console
cd <DPDK-source-directory>
- make config T=arm64-dpaa-linuxapp-gcc install
+ make config T=arm64-dpaa-linux-gcc install
Enabling logs
-------------
.. code-block:: console
sudo apt-get install openssl
- sudo apt-get install libc6-dev-i386 # for i686-native-linuxapp-gcc target
+ sudo apt-get install libc6-dev-i386 # for i686-native-linux-gcc target
This code was also verified on Fedora 24.
This code has NOT been verified on FreeBSD yet.
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-linuxapp-gcc
- make install T=x86_64-native-linuxapp-gcc
+ make config T=x86_64-native-linux-gcc
+ make install T=x86_64-native-linux-gcc
Tests
-----
reserve enough huge pages
cd to the top-level DPDK directory
- export RTE_TARGET=x86_64-native-linuxapp-gcc
+ export RTE_TARGET=x86_64-native-linux-gcc
export RTE_SDK=`pwd`
cd to app/test
type the command "make" to compile
reserve enough huge pages
cd to the top-level DPDK directory
- export RTE_TARGET=x86_64-native-linuxapp-gcc
+ export RTE_TARGET=x86_64-native-linux-gcc
export RTE_SDK=`pwd`
cd to app/test-crypto-perf
type the command "make" to compile
.. code-block:: console
- make config T=x86_64-native-linuxapp-gcc
+ make config T=x86_64-native-linux-gcc
sed -i 's,\(CONFIG_RTE_LIBRTE_PMD_ZUC\)=n,\1=y,' build/.config
make
.. code-block:: console
cd <DPDK-source-directory>
- make config T=arm64-dpaa-linuxapp-gcc install
+ make config T=arm64-dpaa-linux-gcc install
Initialization
--------------
.. code-block:: console
cd <DPDK-source-directory>
- make config T=arm64-dpaa2-linuxapp-gcc install
+ make config T=arm64-dpaa2-linux-gcc install
Initialization
--------------
.. code-block:: console
cd <DPDK-source-directory>
- make config T=arm64-thunderx-linuxapp-gcc install
+ make config T=arm64-thunderx-linux-gcc install
Initialization
* ``MACHINE`` is: ``native``
-* ``EXECENV`` is: ``bsdapp``
+* ``EXECENV`` is: ``freebsd``
* ``TOOLCHAIN`` is: ``gcc`` | ``clang``
.. code-block:: console
- gmake install T=x86_64-native-bsdapp-clang
+ gmake install T=x86_64-native-freebsd-clang
.. note::
.. code-block:: console
- kldload: can't load ./x86_64-native-bsdapp-gcc/kmod/contigmem.ko:
+ kldload: can't load ./x86_64-native-freebsd-gcc/kmod/contigmem.ko:
Exec format error
is generally attributed to not having enough contiguous memory
------------------------------
Once a DPDK target environment directory has been created (such as
-``x86_64-native-bsdapp-clang``), it contains all libraries and header files required
+``x86_64-native-freebsd-clang``), it contains all libraries and header files required
to build an application.
When compiling an application in the FreeBSD environment on the DPDK,
* ``RTE_SDK`` - Points to the DPDK installation directory.
* ``RTE_TARGET`` - Points to the DPDK target environment directory.
- For FreeBSD, this is the ``x86_64-native-bsdapp-clang`` or
- ``x86_64-native-bsdapp-gcc`` directory.
+ For FreeBSD, this is the ``x86_64-native-freebsd-clang`` or
+ ``x86_64-native-freebsd-gcc`` directory.
The following is an example of creating the ``helloworld`` application, which runs
in the DPDK FreeBSD environment. While the example demonstrates compiling
cd $(RTE_SDK)
cd examples/helloworld/
setenv RTE_SDK $HOME/DPDK
- setenv RTE_TARGET x86_64-native-bsdapp-gcc
+ setenv RTE_TARGET x86_64-native-freebsd-gcc
gmake CC=gcc49
CC main.o
setenv RTE_SDK /home/user/DPDK
cp -r $(RTE_SDK)/examples/helloworld my_rte_app
cd my_rte_app/
- setenv RTE_TARGET x86_64-native-bsdapp-gcc
+ setenv RTE_TARGET x86_64-native-freebsd-gcc
gmake CC=gcc49
CC main.o
* ``RTE_SDK=/usr/local/share/dpdk``
-* ``RTE_TARGET=x86_64-native-bsdapp-clang``
+* ``RTE_TARGET=x86_64-native-freebsd-clang``
.. note::
export RTE_SDK=/usr/local/share/dpdk
- export RTE_TARGET=x86_64-native-bsdapp-clang
+ export RTE_TARGET=x86_64-native-freebsd-clang
cp -r /usr/local/share/dpdk/examples/helloworld .
This document contains instructions for installing and configuring the
Data Plane Development Kit (DPDK) software. It is designed to get customers
up and running quickly and describes how to compile and run a
-DPDK application in a FreeBSD application (bsdapp) environment, without going
+DPDK application in a FreeBSD application (freebsd) environment, without going
deeply into detail.
For a comprehensive guide to installing and using FreeBSD, the following
* **Programmer's Guide**: Describes:
* The software architecture and how to use it (through examples),
- specifically in a Linux* application (linuxapp) environment
+ specifically in a Linux* application (linux) environment
* The content of the DPDK, the build system (including the commands
that can be used in the root DPDK Makefile to build the development
rmmod virtio-pci ixgbevf
modprobe uio
- insmod /root/dpdk/x86_64-default-linuxapp-gcc/kmod/igb_uio.ko
+ insmod /root/dpdk/x86_64-default-linux-gcc/kmod/igb_uio.ko
/root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:03.0
/root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:04.0
# use for bonding of virtio and vf tests in VM
- /root/dpdk/x86_64-default-linuxapp-gcc/app/testpmd \
+ /root/dpdk/x86_64-default-linux-gcc/app/testpmd \
-l 0-3 -n 4 --socket-mem 350 -- --i --port-topology=chained
.. _lm_bond_virtio_sriov_switch_conf:
rmmod virtio-pci
modprobe uio
- insmod /root/dpdk/x86_64-default-linuxapp-gcc/kmod/igb_uio.ko
+ insmod /root/dpdk/x86_64-default-linux-gcc/kmod/igb_uio.ko
/root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:03.0
/root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:04.0
# Run testpmd for use with vhost_user sample app.
# test system has 8 cpus (0-7), use cpus 2-7 for VM
- /root/dpdk/x86_64-default-linuxapp-gcc/app/testpmd \
+ /root/dpdk/x86_64-default-linux-gcc/app/testpmd \
-l 0-5 -n 4 --socket-mem 350 -- --burst=64 --i
git clone git://dpdk.org/dpdk
cd dpdk
export RTE_SDK=$PWD
- make install T=x86_64-native-linuxapp-gcc DESTDIR=install
+ make install T=x86_64-native-linux-gcc DESTDIR=install
Testpmd launch
git clone git://dpdk.org/dpdk
cd dpdk
export RTE_SDK=$PWD
- make install T=x86_64-native-linuxapp-gcc DESTDIR=install
+ make install T=x86_64-native-linux-gcc DESTDIR=install
Testpmd launch
.. code-block:: console
- make install RTE_SDK=`pwd` T=x86_64-native-linuxapp-gcc
+ make install RTE_SDK=`pwd` T=x86_64-native-linux-gcc
#. Write a Dockerfile like below.
FROM ubuntu:latest
WORKDIR /usr/src/dpdk
COPY . /usr/src/dpdk
- ENV PATH "$PATH:/usr/src/dpdk/x86_64-native-linuxapp-gcc/app/"
+ ENV PATH "$PATH:/usr/src/dpdk/x86_64-native-linux-gcc/app/"
EOT
#. Build a Docker image.
* ``MACHINE`` can be: ``native``, ``power8``, ``armv8a``
-* ``EXECENV`` can be: ``linuxapp``, ``bsdapp``
+* ``EXECENV`` can be: ``linux``, ``freebsd``
* ``TOOLCHAIN`` can be: ``gcc``, ``icc``
.. code-block:: console
- make install T=x86_64-native-linuxapp-icc
+ make install T=x86_64-native-linux-icc
To compile a 32-bit build using gcc, the make command should be:
.. code-block:: console
- make install T=i686-native-linuxapp-gcc
+ make install T=i686-native-linux-gcc
To prepare a target without building it, for example, if the configuration changes need to be made before compilation,
use the ``make config T=<target>`` command:
.. code-block:: console
- make config T=x86_64-native-linuxapp-gcc
+ make config T=x86_64-native-linux-gcc
.. warning::
.. code-block:: console
- cd x86_64-native-linuxapp-gcc
+ cd x86_64-native-linux-gcc
vi .config
make
Compiling a Sample Application
------------------------------
-Once an DPDK target environment directory has been created (such as ``x86_64-native-linuxapp-gcc``),
+Once an DPDK target environment directory has been created (such as ``x86_64-native-linux-gcc``),
it contains all libraries and header files required to build an application.
When compiling an application in the Linux* environment on the DPDK, the following variables must be exported:
cd examples/helloworld/
export RTE_SDK=$HOME/DPDK
- export RTE_TARGET=x86_64-native-linuxapp-gcc
+ export RTE_TARGET=x86_64-native-linux-gcc
make
CC main.o
export RTE_SDK=/home/user/DPDK
cp -r $(RTE_SDK)/examples/helloworld my_rte_app
cd my_rte_app/
- export RTE_TARGET=x86_64-native-linuxapp-gcc
+ export RTE_TARGET=x86_64-native-linux-gcc
make
CC main.o
Configure and cross compile DPDK Build
--------------------------------------
-To configure a build, choose one of the target configurations, like arm64-dpaa2-linuxapp-gcc and arm64-thunderx-linuxapp-gcc.
+To configure a build, choose one of the target configurations, like arm64-dpaa2-linux-gcc and arm64-thunderx-linux-gcc.
.. code-block:: console
- make config T=arm64-armv8a-linuxapp-gcc
+ make config T=arm64-armv8a-linux-gcc
To cross-compile, without compiling the kernel modules, use the following command:
For example if the target machine is arm64 we can use the following
command::
- meson arm64-build --cross-file config/arm/arm64_armv8_linuxapp_gcc
+ meson arm64-build --cross-file config/arm/arm64_armv8_linux_gcc
ninja -C arm64-build
This document contains instructions for installing and configuring the Data Plane Development Kit (DPDK) software.
It is designed to get customers up and running quickly.
-The document describes how to compile and run a DPDK application in a Linux application (linuxapp) environment,
+The document describes how to compile and run a DPDK application in a Linux application (linux) environment,
without going deeply into detail.
Documentation Roadmap
* Programmer's Guide: Describes:
- * The software architecture and how to use it (through examples), specifically in a Linux application (linuxapp) environment
+ * The software architecture and how to use it (through examples), specifically in a Linux application (linux) environment
* The content of the DPDK, the build system (including the commands that can be used in the root DPDK Makefile to build the development kit and
an application) and guidelines for porting an application
# Build DPDK target.
cd dpdk_folder
- make install T=x86_64-native-linuxapp-gcc -j
+ make install T=x86_64-native-linux-gcc -j
# Get the hugepage size.
awk '/Hugepagesize/ {print $2}' /proc/meminfo
------------------------------------------------------------------------
- [1] i686-native-linuxapp-gcc
+ [1] i686-native-linux-gcc
- [2] i686-native-linuxapp-icc
+ [2] i686-native-linux-icc
- [3] ppc_64-power8-linuxapp-gcc
+ [3] ppc_64-power8-linux-gcc
- [4] x86_64-native-bsdapp-clang
+ [4] x86_64-native-freebsd-clang
- [5] x86_64-native-bsdapp-gcc
+ [5] x86_64-native-freebsd-gcc
- [6] x86_64-native-linuxapp-clang
+ [6] x86_64-native-linux-clang
- [7] x86_64-native-linuxapp-gcc
+ [7] x86_64-native-linux-gcc
- [8] x86_64-native-linuxapp-icc
+ [8] x86_64-native-linux-icc
------------------------------------------------------------------------
- Step 2: Setup linuxapp environment
+ Step 2: Setup linux environment
------------------------------------------------------------------------
------------------------------------------------------------------------
- Step 3: Run test application for linuxapp environment
+ Step 3: Run test application for linux environment
------------------------------------------------------------------------
Option:
-The following selection demonstrates the creation of the ``x86_64-native-linuxapp-gcc`` DPDK library.
+The following selection demonstrates the creation of the ``x86_64-native-linux-gcc`` DPDK library.
.. code-block:: console
Option: 9
- ================== Installing x86_64-native-linuxapp-gcc
+ ================== Installing x86_64-native-linux-gcc
Configuration done
== Build lib
...
Build complete
- RTE_TARGET exported as x86_64-native-linuxapp-gcc
+ RTE_TARGET exported as x86_64-native-linux-gcc
The following selection demonstrates the starting of the DPDK UIO driver.
.. code-block:: console
cd <DPDK-source-directory>
- make config T=arm64-thunderx-linuxapp-gcc
+ make config T=arm64-thunderx-linux-gcc
Initialization
.. code-block:: console
- arm-armv7a-linuxapp-gcc
- arm64-armv8a-linuxapp-gcc
- arm64-dpaa2-linuxapp-gcc
- arm64-thunderx-linuxapp-gcc
- arm64-xgene1-linuxapp-gcc
- i686-native-linuxapp-gcc
- i686-native-linuxapp-icc
- ppc_64-power8-linuxapp-gcc
- x86_64-native-bsdapp-clang
- x86_64-native-bsdapp-gcc
- x86_64-native-linuxapp-clang
- x86_64-native-linuxapp-gcc
- x86_64-native-linuxapp-icc
- x86_x32-native-linuxapp-gcc
+ arm-armv7a-linux-gcc
+ arm64-armv8a-linux-gcc
+ arm64-dpaa2-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-linuxapp-gcc
+ make install T=x86_64-native-linux-gcc
Use ARM (ThunderX, DPAA, X-Gene) or PowerPC target for respective platform.
.. code-block:: console
modprobe uio
- insmod ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
+ insmod ./x86_64-native-linux-gcc/kmod/igb_uio.ko
or
.. code-block:: console
- ./x86_64-native-linuxapp-gcc/app/testpmd -l 0-3 -n 4 -- -i
+ ./x86_64-native-linux-gcc/app/testpmd -l 0-3 -n 4 -- -i
Successful execution will show initialization messages from EAL, PMD and
testpmd application. A prompt will be displayed at the end for user commands
.. code-block:: console
- cp x86_64-native-bsdapp-clang/kmod/contigmem.ko /boot/kernel/
+ cp x86_64-native-freebsd-clang/kmod/contigmem.ko /boot/kernel/
#. Add the following lines to /boot/loader.conf:
.. code-block:: console
- kldload ./x86_64-native-bsdapp-clang/kmod/nic_uio.ko
+ kldload ./x86_64-native-freebsd-clang/kmod/nic_uio.ko
#. Start testpmd with basic parameters:
.. code-block:: console
- ./x86_64-native-bsdapp-clang/app/testpmd -l 0-3 -n 4 -w 0000:02:00.4 -- -i
+ ./x86_64-native-freebsd-clang/app/testpmd -l 0-3 -n 4 -w 0000:02:00.4 -- -i
Example output:
.. code-block:: console
- ./arm64-dpaa-linuxapp-gcc/testpmd -c 0xff -n 1 \
+ ./arm64-dpaa-linux-gcc/testpmd -c 0xff -n 1 \
-- -i --portmask=0x3 --nb-cores=1 --no-flush-rx
.....
e.g., 2621440
The compilation of any unused drivers can be disabled using the
-configuration file in config/ directory (e.g., config/common_linuxapp).
+configuration file in config/ directory (e.g., config/common_linux).
This would help in bringing down the time taken for building the
libraries and the initialization time of the application.
.. code-block:: console
- make install T=x86_64-native-linuxapp-gcc
- ./x86_64-native-linuxapp-gcc/app/testpmd -l 0-3 -n 4 -- -i
+ make install T=x86_64-native-linux-gcc
+ ./x86_64-native-linux-gcc/app/testpmd -l 0-3 -n 4 -- -i
#. Finally, access the Guest OS using vncviewer with the localhost:5900 port and check the lspci command output in the Guest OS.
The virtual functions will be listed as available for use.
-#. Configure and install the DPDK with an x86_64-native-linuxapp-gcc configuration on the Guest OS as normal,
+#. Configure and install the DPDK with an x86_64-native-linux-gcc configuration on the Guest OS as normal,
that is, there is no change to the normal installation procedure.
.. code-block:: console
- make config T=x86_64-native-linuxapp-gcc O=x86_64-native-linuxapp-gcc
- cd x86_64-native-linuxapp-gcc
+ make config T=x86_64-native-linux-gcc O=x86_64-native-linux-gcc
+ cd x86_64-native-linux-gcc
make
.. note::
.. note::
- For Bluefield, target should be set to ``arm64-bluefield-linuxapp-gcc``. This
+ For Bluefield, target should be set to ``arm64-bluefield-linux-gcc``. This
will enable ``CONFIG_RTE_LIBRTE_MLX5_PMD`` and set ``RTE_CACHE_LINE_SIZE`` to
64. Default armv8a configuration of make build and meson build set it to 128
then brings performance degradation.
export LIBMUSDK_PATH=<musdk>/usr/local
export CROSS=aarch64-linux-gnu-
- make config T=arm64-armv8a-linuxapp-gcc
+ make config T=arm64-armv8a-linux-gcc
sed -ri 's,(MVNETA_PMD=)n,\1y,' build/.config
make
export LIBMUSDK_PATH=<musdk>/usr/local
export CROSS=<toolchain>/bin/aarch64-linux-gnu-
export RTE_KERNELDIR=<kernel-dir>
- export RTE_TARGET=arm64-armv8a-linuxapp-gcc
+ export RTE_TARGET=arm64-armv8a-linux-gcc
- make config T=arm64-armv8a-linuxapp-gcc
+ make config T=arm64-armv8a-linux-gcc
sed -i "s/MVNETA_PMD=y/MVNETA_PMD=n/" build/.config
sed -i "s/MVPP2_PMD=n/MVPP2_PMD=y/" build/.config
make
Of course, a DPDK app will require such a BSP installed for using the
NFP PMD, along with a specific NFP firmware application.
-Default PMD configuration is at the **common_linuxapp configuration** file:
+Default PMD configuration is at the **common_linux configuration** file:
- **CONFIG_RTE_LIBRTE_NFP_PMD=y**
.. code-block:: console
cd <DPDK-source-directory>
- make config T=arm64-thunderx-linuxapp-gcc install
+ make config T=arm64-thunderx-linux-gcc install
#. Running testpmd:
.. code-block:: console
- ./arm64-thunderx-linuxapp-gcc/app/testpmd -c 700 \
+ ./arm64-thunderx-linux-gcc/app/testpmd -c 700 \
--base-virtaddr=0x100000000000 \
--mbuf-pool-ops-name="octeontx_fpavf" \
--vdev='event_octeontx' \
Build options
-------------
-The default PMD configuration available in the common_linuxapp configuration file:
+The default PMD configuration available in the common_linux configuration file:
CONFIG_RTE_LIBRTE_PMD_SOFTNIC=y
.. code-block:: console
- ./x86_64-native-linuxapp-gcc/app/testpmd -l 23-25 -n 4 \
+ ./x86_64-native-linux-gcc/app/testpmd -l 23-25 -n 4 \
--vdev 'net_softnic0, \
firmware=./drivers/net/softnic/ \
firmware.cli, \
Run pktgen from the pktgen directory in a terminal with a commandline like the
following::
- sudo ./app/app/x86_64-native-linuxapp-gcc/app/pktgen -l 1-5 -n 4 \
+ sudo ./app/app/x86_64-native-linux-gcc/app/pktgen -l 1-5 -n 4 \
--proc-type auto --log-level debug --socket-mem 512,512 --file-prefix pg \
--vdev=net_tap0 --vdev=net_tap1 -b 05:00.0 -b 05:00.1 \
-b 04:00.0 -b 04:00.1 -b 04:00.2 -b 04:00.3 \
for details.
To compile the ThunderX NICVF PMD for Linux arm64 gcc,
-use arm64-thunderx-linuxapp-gcc as target.
+use arm64-thunderx-linux-gcc as target.
Linux
-----
.. code-block:: console
- ./arm64-thunderx-linuxapp-gcc/app/testpmd -l 0-3 -n 4 -w 0002:01:00.2 \
+ ./arm64-thunderx-linux-gcc/app/testpmd -l 0-3 -n 4 -w 0002:01:00.2 \
-- -i --no-flush-rx \
--port-topology=loop
.. code-block:: console
cd <dpdk directory>
- make config T=arm64-thunderx-linuxapp-gcc
+ make config T=arm64-thunderx-linux-gcc
make
The example applications can be compiled using the following:
cd <dpdk directory>
export RTE_SDK=$PWD
export RTE_KERNELDIR=$THUNDER_ROOT/linux/kernel/linux
- make config T=arm64-thunderx-linuxapp-gcc
+ make config T=arm64-thunderx-linux-gcc
make -j CROSS=aarch64-thunderx-linux-gnu- CONFIG_RTE_KNI_KMOD=n CONFIG_RTE_EAL_IGB_UIO=n EXTRA_CFLAGS="-isystem <numa_install_dir>/include" EXTRA_LDFLAGS="-L<numa_install_dir>/lib -lnuma"
If NUMA support is not required, it can be disabled as explained in
.. code-block:: console
- make config T=arm64-thunderx-linuxapp-gcc
+ make config T=arm64-thunderx-linux-gcc
make CROSS=aarch64-thunderx-linux-gnu-
~/DPDK$ cd examples/helloworld/
~/DPDK/examples/helloworld$ export RTE_SDK=/home/user/DPDK
- ~/DPDK/examples/helloworld$ export RTE_TARGET=x86_64-native-linuxapp-gcc
+ ~/DPDK/examples/helloworld$ export RTE_TARGET=x86_64-native-linux-gcc
~/DPDK/examples/helloworld$ make
CC main.o
LD helloworld
~$ cp -r DPDK/examples/helloworld my_rte_app
~$ cd my_rte_app/
~/my_rte_app$ export RTE_SDK=/home/user/DPDK
- ~/my_rte_app$ export RTE_TARGET=x86_64-native-linuxapp-gcc
+ ~/my_rte_app$ export RTE_TARGET=x86_64-native-linux-gcc
~/my_rte_app$ make
CC main.o
LD helloworld
A build directory is specific to a configuration that includes architecture + execution environment + toolchain.
It is possible to have several build directories sharing the same sources with different configurations.
-For instance, to create a new build directory called my_sdk_build_dir using the default configuration template config/defconfig_x86_64-linuxapp,
+For instance, to create a new build directory called my_sdk_build_dir using the default configuration template config/defconfig_x86_64-linux,
we use:
.. code-block:: console
cd ${RTE_SDK}
- make config T=x86_64-native-linuxapp-gcc O=my_sdk_build_dir
+ make config T=x86_64-native-linux-gcc O=my_sdk_build_dir
This creates a new my_sdk_build_dir directory. After that, we can compile by doing:
.. code-block:: console
export RTE_SDK=/opt/DPDK
- export RTE_TARGET=x86_64-native-linuxapp-gcc
+ export RTE_TARGET=x86_64-native-linux-gcc
cd /path/to/my_app
For a new application, the user must create their own Makefile that includes some .mk files, such as
* RTE_TOOLCHAIN: Defines the toolchain (gcc , icc).
It is the same value as CONFIG_RTE_TOOLCHAIN but without the double-quotes around the string.
-* RTE_EXEC_ENV: Defines the executive environment (linuxapp).
+* RTE_EXEC_ENV: Defines the executive environment (linux).
It is the same value as CONFIG_RTE_EXEC_ENV but without the double-quotes around the string.
* RTE_KERNELDIR: This variable contains the absolute path to the kernel sources that will be used to compile the kernel modules.
.. code-block:: console
- make config O=mybuild T=x86_64-native-linuxapp-gcc
+ make config O=mybuild T=x86_64-native-linux-gcc
Build Targets
-------------
.. code-block:: console
cd $(RTE_SDK)
- make config O=mybuild T=x86_64-native-linuxapp-gcc
+ make config O=mybuild T=x86_64-native-linux-gcc
make O=mybuild
is equivalent to:
.. code-block:: console
cd $(RTE_SDK)
- make config O=mybuild T=x86_64-native-linuxapp-gcc
+ make config O=mybuild T=x86_64-native-linux-gcc
cd mybuild
# no need to specify O= now
Then, the main() function is called. The core initialization and launch is done in rte_eal_init() (see the API documentation).
It consist of calls to the pthread library (more specifically, pthread_self(), pthread_create(), and pthread_setaffinity_np()).
-.. _figure_linuxapp_launch:
+.. _figure_linux_launch:
.. figure:: img/linuxapp_launch.*
Multi-process Support
~~~~~~~~~~~~~~~~~~~~~
-The Linuxapp EAL allows a multi-process as well as a multi-threaded (pthread) deployment model.
+The Linux EAL allows a multi-process as well as a multi-threaded (pthread) deployment model.
See chapter
:ref:`Multi-process Support <Multi-process_Support>` for more details.
* ${RTE_SDK}: Points to the root directory of the DPDK.
-* ${RTE_TARGET}: Reference the target to be used for compilation (for example, x86_64-native-linuxapp-gcc).
+* ${RTE_TARGET}: Reference the target to be used for compilation (for example, x86_64-native-linux-gcc).
Build Targets
-------------
.. code-block:: console
export RTE_SDK=/path/to/DPDK
- export RTE_TARGET=x86_64-native-linuxapp-icc
+ export RTE_TARGET=x86_64-native-linux-icc
make -f /path/to/my_app/Makefile S=/path/to/my_app O=/path/to/build_dir
.. code-block:: console
cd ${RTE_SDK}
- make config T=x86_64-native-linuxapp-gcc
+ make config T=x86_64-native-linux-gcc
make
.. code-block:: console
cd ${RTE_SDK}
- make config T=x86_64-native-linuxapp-gcc
+ make config T=x86_64-native-linux-gcc
make
Target
In the DPDK, the target is a combination of architecture, machine,
executive environment and toolchain. For example:
- i686-native-linuxapp-gcc.
+ i686-native-linux-gcc.
TCP
Transmission Control Protocol
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.48.4 r9939"
- sodipodi:docname="linuxapp_launch.svg"
+ sodipodi:docname="linux_launch.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
- inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/linuxapp_launch.png"
+ inkscape:export-filename="/home/matz/rapports/doc/intel/architecture_docs/linux_launch.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
version="1.1">
* **Programmer's Guide** (this document): Describes:
* The software architecture and how to use it (through examples),
- specifically in a Linux* application (linuxapp) environment
+ specifically in a Linux* application (linux) environment
* The content of the DPDK, the build system
(including the commands that can be used in the root DPDK Makefile to build the development kit and an application)
.. code-block:: console
export RTE_SDK=/home/user/DPDK
- export RTE_TARGET=x86_64-native-linuxapp-gcc
+ export RTE_TARGET=x86_64-native-linux-gcc
See the *DPDK Getting Started Guide* for information on setting up the development environment.
make
sudo insmod pmu_el0_cycle_counter.ko
cd $DPDK_DIR
- make config T=arm64-armv8a-linuxapp-gcc
+ make config T=arm64-armv8a-linux-gcc
echo "CONFIG_RTE_ARM_EAL_RDTSC_USE_PMU=y" >> build/.config
make
This parameter must be set to y.
The parameter is found in the build configuration files in the DPDK/config directory,
-for example, DPDK/config/common_linuxapp.
+for example, DPDK/config/common_linux.
RED configuration parameters are specified in the rte_red_params structure within the rte_sched_port_params structure
that is passed to the scheduler on initialization.
RED parameters are specified separately for four traffic classes and three packet colors (green, yellow and red)
.. code-block:: console
cd <DPDK-source-directory>
- make config T=arm64-dpaa2-linuxapp-gcc install
+ make config T=arm64-dpaa2-linux-gcc install
Initialization
--------------
.. code-block:: console
cd <DPDK-source-directory>
- make config T=arm64-dpaa2-linuxapp-gcc install
+ make config T=arm64-dpaa2-linux-gcc install
Initialization
--------------
* Added static linkage of ``mlx`` dependency.
* Improved stability of E-Switch flow driver.
* Added new make build configuration to set the cacheline size for Bluefield
- correctly - ``arm64-bluefield-linuxapp-gcc``.
+ correctly - ``arm64-bluefield-linux-gcc``.
* **Updated the enic driver.**
* In UIO, the RX interrupt shares the same vector with other
interrupts. When the RX interrupt and LSC interrupt are both enabled, only
the former is available.
- * RX interrupt is only implemented for the linuxapp target.
+ * RX interrupt is only implemented for the linux target.
* The feature is only currently enabled for tow PMDs: ixgbe and igb.
.. code-block:: console
- export RTE_TARGET=x86_64-native-linuxapp-gcc
+ export RTE_TARGET=x86_64-native-linux-gcc
See the *DPDK Getting Started Guide* for possible RTE_TARGET values.
This means that HW baseband device/s must be bound to a DPDK driver or
a SW baseband device/s (virtual BBdev) must be created (using --vdev).
-To run the application in linuxapp environment with the turbo_sw baseband device
+To run the application in linux environment with the turbo_sw baseband device
using the whitelisted port running on 1 encoding lcore and 1 decoding lcore
issue the command:
.. code-block:: console
- $ ./pktgen-3.4.0/app/x86_64-native-linuxapp-gcc/pktgen -c 0x3 \
+ $ ./pktgen-3.4.0/app/x86_64-native-linux-gcc/pktgen -c 0x3 \
--socket-mem=1,1 --file-prefix=pg -w <NIC1PCIADDR> -- -m 1.0 -P
where:
Running the Application
-----------------------
-To run the application in linuxapp environment, issue the following command:
+To run the application in linux environment, issue the following command:
.. code-block:: console
* -p PORTMASK: Hexadecimal bitmask of ports to configure
-#. To run the application in linuxapp environment with 10 lcores, 4 ports,
+#. To run the application in linux environment with 10 lcores, 4 ports,
issue the command:
.. code-block:: console
are folder paths.
-To run the application in linuxapp environment to test one AES FIPS test data
+To run the application in linux environment to test one AES FIPS test data
file for crypto_aesni_mb PMD, issue the command:
.. code-block:: console
--req-file /PATH/TO/REQUEST/FILE.req --rsp-file ./PATH/TO/RESPONSE/FILE.rsp
--cryptodev crypto_aesni_mb
-To run the application in linuxapp environment to test all AES-GCM FIPS test
+To run the application in linux environment to test all AES-GCM FIPS test
data files in one folder for crypto_aesni_gcm PMD, issue the command:
.. code-block:: console
Running the Application
-----------------------
-To run the example in a ``linuxapp`` environment:
+To run the example in a ``linux`` environment:
.. code-block:: console
.. code-block:: console
- export RTE_TARGET=x86_64-native-linuxapp-gcc
+ export RTE_TARGET=x86_64-native-linux-gcc
See the *DPDK Getting Started* Guide for possible ``RTE_TARGET`` values.
Running the Application
-----------------------
-To run the example in a ``linuxapp`` environment:
+To run the example in a ``linux`` environment:
.. code-block:: console
Running the Application
-----------------------
-To run the example in a linuxapp environment:
+To run the example in a linux environment:
.. code-block:: console
if (ret < 0)
rte_panic("Cannot init EAL\n");
-This call finishes the initialization process that was started before main() is called (in case of a Linuxapp environment).
+This call finishes the initialization process that was started before main() is called (in case of a Linux environment).
The argc and argv arguments are provided to the rte_eal_init() function.
The value returned is the number of parsed arguments.
* -q NQ is the number of queue (=ports) per lcore (the default is 1)
-To run the example in linuxapp environment with 2 lcores (2,4) over 2 ports(0,2) with 1 RX queue per lcore:
+To run the example in linux environment with 2 lcores (2,4) over 2 ports(0,2) with 1 RX queue per lcore:
.. code-block:: console
IP_FRAG: entering main loop on lcore 2
IP_FRAG: -- lcoreid=2 portid=0
-To run the example in linuxapp environment with 1 lcore (4) over 2 ports(0,2) with 2 RX queues per lcore:
+To run the example in linux environment with 1 lcore (4) over 2 ports(0,2) with 2 RX queues per lcore:
.. code-block:: console
then they are considered as invalid and will be dropped.
Valid range is 1ms - 3600s. Default value: 1s.
-To run the example in linuxapp environment with 2 lcores (2,4) over 2 ports(0,2) with 1 RX queue per lcore:
+To run the example in linux environment with 2 lcores (2,4) over 2 ports(0,2) with 1 RX queue per lcore:
.. code-block:: console
IP_RSMBL: entering main loop on lcore 2
IP_RSMBL: -- lcoreid=2 portid=0
-To run the example in linuxapp environment with 1 lcore (4) over 2 ports(0,2) with 2 RX queues per lcore:
+To run the example in linux environment with 1 lcore (4) over 2 ports(0,2) with 2 RX queues per lcore:
.. code-block:: console
* ``T PERIOD``: statistics will be refreshed each PERIOD seconds (0 to
disable, 10 default, 86400 maximum).
-To run the application in linuxapp environment with 4 lcores, 16 ports
+To run the application in linux environment with 4 lcores, 16 ports
8 RX queues per lcore and a ping interval of 10ms, issue the command:
.. code-block:: console
.. note::
- This application is intended as a linuxapp only.
+ This application is intended as a linux only.
Running the kni Example Application
-----------------------------------
Running the Application
-----------------------
-To run the example in a ``linuxapp`` environment and enable CAT on cpus 0-2:
+To run the example in a ``linux`` environment and enable CAT on cpus 0-2:
.. code-block:: console
This means that HW crypto device/s must be bound to a DPDK driver or
a SW crypto device/s (virtual crypto PMD) must be created (using --vdev).
-To run the application in linuxapp environment with 2 lcores, 2 ports and 2 crypto devices, issue the command:
+To run the application in linux environment with 2 lcores, 2 ports and 2 crypto devices, issue the command:
.. code-block:: console
* l: Use locale thousands separator when formatting big numbers.
-To run the application in linuxapp environment with 4 lcores, 16 ports, 8 RX queues per lcore and
+To run the application in linux environment with 4 lcores, 16 ports, 8 RX queues per lcore and
thousands separator printing, issue the command:
.. code-block:: console
* --[no-]mac-updating: Enable or disable MAC addresses updating (enabled by default).
-To run the application in linuxapp environment with 4 lcores, 16 ports and 8 RX queues per lcore and MAC address
+To run the application in linux environment with 4 lcores, 16 ports and 8 RX queues per lcore and MAC address
updating enabled, issue the command:
.. code-block:: console
* -T PERIOD: statistics will be refreshed each PERIOD seconds (0 to disable, 10 default)
-To run the application in a linuxapp environment with 4 lcores, 4 memory channels, 16 ports and 8 RX queues per lcore,
+To run the application in a linux environment with 4 lcores, 4 memory channels, 16 ports and 8 RX queues per lcore,
issue the command:
.. code-block:: console
If two ``-i`` parameters are given, the two interfaces form a bridge,
where traffic received on one interface is replicated and sent to the other interface.
-For example, to run the application in a linuxapp environment using port 0 and 2:
+For example, to run the application in a linux environment using port 0 and 2:
.. code-block:: console
.. code-block:: console
- export RTE_TARGET=x86_64-native-linuxapp-gcc
+ export RTE_TARGET=x86_64-native-linux-gcc
See the DPDK Getting Started Guide for possible RTE_TARGET values.
The application is located in the ``ptpclient`` sub-directory.
.. note::
- To compile the application edit the ``config/common_linuxapp`` configuration file to enable IEEE1588
+ To compile the application edit the ``config/common_linux`` configuration file to enable IEEE1588
and then recompile DPDK:
.. code-block:: console
Running the Application
-----------------------
-To run the example in a ``linuxapp`` environment:
+To run the example in a ``linux`` environment:
.. code-block:: console
.. note::
- This application is intended as a linuxapp only.
+ This application is intended as a linux only.
.. note::
-p PORTMASK: A hexadecimal bitmask of the ports to configure
-To run the application in a linuxapp environment with four logical cores and ports 0 and 2,
+To run the application in a linux environment with four logical cores and ports 0 and 2,
issue the following command:
.. code-block:: console
The --proc-type=secondary option is necessary for the EAL to properly initialize the control application to
use the same huge pages as the core application and thus be able to access its rings.
-To run the application in a linuxapp environment on logical core 0, issue the following command:
+To run the application in a linux environment on logical core 0, issue the following command:
.. code-block:: console
Running the Application
-----------------------
-To run the example in a ``linuxapp`` environment:
+To run the example in a ``linux`` environment:
.. code-block:: console
.. code-block:: console
- export RTE_TARGET=x86_64-native-linuxapp-gcc
+ export RTE_TARGET=x86_64-native-linux-gcc
See the *DPDK Getting Started* Guide for possible RTE_TARGET values.
Running the Application
-----------------------
-To run the example in a ``linuxapp`` environment:
+To run the example in a ``linux`` environment:
.. code-block:: console
-------------------------
To enable vhost, turn on vhost library in the configure file
-``config/common_linuxapp``.
+``config/common_linux``.
.. code-block:: console
Running the Application
-----------------------
-To run the example in linuxapp environment:
+To run the example in linux environment:
.. code-block:: console
Running the Application
-----------------------
-To run the example in a linuxapp environment:
+To run the example in a linux environment:
.. code-block:: console
Statistics Display
~~~~~~~~~~~~~~~~~~
-When run in a linuxapp environment,
+When run in a linux environment,
the VMDQ and DCB Forwarding sample application can display statistics showing the number of packets read from each RX queue.
This is provided by way of a signal handler for the SIGHUP signal,
which simply prints to standard output the packet counts in grid form.
.. code-block:: console
- export RTE_TARGET=x86_64-native-linuxapp-gcc
+ export RTE_TARGET=x86_64-native-linux-gcc
#. Build the application:
-------------
Shortened tree of isg_cid-wireless_dpdk_ae with dpdk compiled for
-x86_64-native-linuxapp-icc target:
+x86_64-native-linux-icc target:
::
|-- turbo_enc_c1_k40_r0_e1194_rm.data
|-- turbo_enc_c1_k6144_r0_e32256_crc24b_rm.data
- |-- x86_64-native-linuxapp-icc
+ |-- x86_64-native-linux-icc
|-- app
|-- testbbdev
.. code-block:: console
- ./test-bbdev.py -p ../../x86_64-native-linuxapp-icc/app/testbbdev
+ ./test-bbdev.py -p ../../x86_64-native-linux-icc/app/testbbdev
-v turbo_dec_default.data
It runs all available tests using the test vector filled based on
.. code-block:: console
- ./test-bbdev.py -p ../../x86_64-native-linuxapp-icc/app/testbbdev
+ ./test-bbdev.py -p ../../x86_64-native-linux-icc/app/testbbdev
-e="--vdev=baseband_turbo_sw" -t 120 -c validation
-v ./test_vectors/turbo_* -n 64 -b 8 32
SYMLINK-y-include += rte_eth_softnic.h
ifneq ($(CONFIG_RTE_EXEC_ENV),"linuxapp")
-$(info Softnic PMD can only operate in a linuxapp environment, \
+$(info Softnic PMD can only operate in a linux environment, \
please change the definition of the RTE_TARGET environment variable)
all:
clean:
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overwritten by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(info This application can only operate in a linuxapp environment, \
+$(info This application can only operate in a linux environment, \
please change the definition of the RTE_TARGET environment variable)
else
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overwritten by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(error This application can only operate in a linuxapp environment, \
+$(error This application can only operate in a linux environment, \
please change the definition of the RTE_TARGET environment variable)
endif
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
INC += $(sort $(wildcard *.h))
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(info This application can only operate in a linuxapp environment, \
+$(info This application can only operate in a linux environment, \
please change the definition of the RTE_TARGET environment variable)
all:
clean:
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
LOCAL_IPV6=fd12:3456:789a:0031:0000:0000:0000:0092
DPDK_PATH=${RTE_SDK:-${PWD}}
-DPDK_BUILD=${RTE_TARGET:-x86_64-native-linuxapp-gcc}
+DPDK_BUILD=${RTE_TARGET:-x86_64-native-linux-gcc}
SGW_OUT_FILE=./ipsec-secgw.out1
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(error This application can only operate in a linuxapp environment, \
+$(error This application can only operate in a linux environment, \
please change the definition of the RTE_TARGET environment variable)
endif
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(info This application can only operate in a linuxapp environment, \
+$(info This application can only operate in a linux environment, \
please change the definition of the RTE_TARGET environment variable)
all:
else
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(error This application can only operate in a linuxapp environment, \
+$(error This application can only operate in a linux environment, \
please change the definition of the RTE_TARGET environment variable)
endif
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
unexport RTE_SRCDIR RTE_OUTPUT RTE_EXTMK
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(info This application can only operate in a linuxapp environment, \
+$(info This application can only operate in a linux environment, \
please change the definition of the RTE_TARGET environment variable)
all:
clean:
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overriddegitn by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(info This application can only operate in a linuxapp environment, \
+$(info This application can only operate in a linux environment, \
please change the definition of the RTE_TARGET environment variable)
all:
clean:
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(error This application can only operate in a linuxapp environment, \
+$(error This application can only operate in a linux environment, \
please change the definition of the RTE_TARGET environment variable)
endif
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(error This application can only operate in a linuxapp environment, \
+$(error This application can only operate in a linux environment, \
please change the definition of the RTE_TARGET environment variable)
endif
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
ifneq ($(CONFIG_RTE_EXEC_ENV),"linuxapp")
-$(info This application can only operate in a linuxapp environment, \
+$(info This application can only operate in a linux environment, \
please change the definition of the RTE_TARGET environment variable)
all:
else
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(info This application can only operate in a linuxapp environment, \
+$(info This application can only operate in a linux environment, \
please change the definition of the RTE_TARGET environment variable)
all:
else
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(info This application can only operate in a linuxapp environment, \
+$(info This application can only operate in a linux environment, \
please change the definition of the RTE_TARGET environment variable)
all:
else
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
-$(info This application can only operate in a linuxapp environment, \
+$(info This application can only operate in a linux environment, \
please change the definition of the RTE_TARGET environment variable)
all:
else
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
endif
# Default target, can be overridden by command line or environment
-RTE_TARGET ?= x86_64-native-linuxapp-gcc
+RTE_TARGET ?= x86_64-native-linux-gcc
include $(RTE_SDK)/mk/rte.vars.mk
*
* Display the format string and its expanded arguments (printf-like).
*
- * In a linuxapp environment, this function dumps the stack and calls
+ * In a linux environment, this function dumps the stack and calls
* abort() resulting in a core dump if enabled.
*
* The function never returns.
};
/**
- * The type of process in a linuxapp, multi-process setup
+ * The type of process in a linux, multi-process setup
*/
enum rte_proc_type_t {
RTE_PROC_AUTO = -1, /* allow auto-detection of primary/secondary */
LIBABIVER := 9
-# specific to bsdapp exec-env
+# specific to freebsd exec-env
SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) := eal.c
SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_cpuflags.c
SRCS-$(CONFIG_RTE_EXEC_ENV_FREEBSD) += eal_memory.c
CFLAGS_eal_hpet.o += -Wno-return-type
endif
-INC := # no bsdapp specific headers
+INC := # no bsd specific headers
SYMLINK-$(CONFIG_RTE_EXEC_ENV_FREEBSD)-include/exec-env := \
$(addprefix include/exec-env/,$(INC))
LDLIBS += -lnuma
endif
-# specific to linuxapp exec-env
+# specific to linux exec-env
SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) := eal.c
SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_cpuflags.c
SRCS-$(CONFIG_RTE_EXEC_ENV_LINUX) += eal_hugepage_info.c
--- /dev/null
+freebsd/
\ No newline at end of file
+++ /dev/null
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-exec-env-appinstall:
- @true
-
-exec-env-appclean:
- @true
+++ /dev/null
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# exec-env:
-#
-# - define EXECENV_CFLAGS variable (overridden by cmdline)
-# - define EXECENV_LDFLAGS variable (overridden by cmdline)
-# - define EXECENV_ASFLAGS variable (overridden by cmdline)
-# - may override any previously defined variable
-#
-# examples for RTE_EXEC_ENV: linuxapp, bsdapp
-#
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-EXECENV_CFLAGS = -pthread -fPIC
-else
-EXECENV_CFLAGS = -pthread
-endif
-
-EXECENV_LDFLAGS =
-EXECENV_LDLIBS = -lexecinfo
-EXECENV_ASFLAGS =
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-EXECENV_LDLIBS += -lgcc_s
-endif
-
-# force applications to link with gcc/icc instead of using ld
-LINK_USING_CC := 1
-
-BSDMAKE=/usr/bin/make
-
-export EXECENV_CFLAGS EXECENV_LDFLAGS EXECENV_ASFLAGS
--- /dev/null
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2010-2014 Intel Corporation
+
+exec-env-appinstall:
+ @true
+
+exec-env-appclean:
+ @true
--- /dev/null
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2010-2014 Intel Corporation
+
+#
+# exec-env:
+#
+# - define EXECENV_CFLAGS variable (overridden by cmdline)
+# - define EXECENV_LDFLAGS variable (overridden by cmdline)
+# - define EXECENV_ASFLAGS variable (overridden by cmdline)
+# - may override any previously defined variable
+#
+# examples for RTE_EXEC_ENV: linux, freebsd
+#
+ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
+EXECENV_CFLAGS = -pthread -fPIC
+else
+EXECENV_CFLAGS = -pthread
+endif
+
+EXECENV_LDFLAGS =
+EXECENV_LDLIBS = -lexecinfo
+EXECENV_ASFLAGS =
+
+ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
+EXECENV_LDLIBS += -lgcc_s
+endif
+
+# force applications to link with gcc/icc instead of using ld
+LINK_USING_CC := 1
+
+BSDMAKE=/usr/bin/make
+
+export EXECENV_CFLAGS EXECENV_LDFLAGS EXECENV_ASFLAGS
--- /dev/null
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2010-2014 Intel Corporation
+
+exec-env-appinstall:
+ @true
+
+exec-env-appclean:
+ @true
--- /dev/null
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2010-2014 Intel Corporation
+
+#
+# exec-env:
+#
+# - define EXECENV_CFLAGS variable (overridden by cmdline)
+# - define EXECENV_LDFLAGS variable (overridden by cmdline)
+# - define EXECENV_ASFLAGS variable (overridden by cmdline)
+# - may override any previously defined variable
+#
+# examples for RTE_EXEC_ENV: linux, freebsd
+#
+ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
+EXECENV_CFLAGS = -pthread -fPIC
+else
+EXECENV_CFLAGS = -pthread
+endif
+
+EXECENV_LDLIBS =
+EXECENV_ASFLAGS =
+
+ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
+EXECENV_LDLIBS += -lgcc_s
+endif
+
+EXECENV_LDLIBS-$(CONFIG_RTE_USE_LIBBSD) += -lbsd
+
+# force applications to link with gcc/icc instead of using ld
+LINK_USING_CC := 1
+
+# For shared libraries
+EXECENV_LDFLAGS += -export-dynamic
+# Add library to the group to resolve symbols
+EXECENV_LDLIBS += -ldl
+
+# EXECENV_LDLIBS-y applies to lib.so and app linking
+# while EXECENV_LDLIBS applies only to app linking.
+EXECENV_LDLIBS += $(EXECENV_LDLIBS-y)
+
+export EXECENV_CFLAGS EXECENV_LDFLAGS EXECENV_ASFLAGS EXECENV_LDLIBS
--- /dev/null
+linux/
\ No newline at end of file
+++ /dev/null
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-exec-env-appinstall:
- @true
-
-exec-env-appclean:
- @true
+++ /dev/null
-# SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2010-2014 Intel Corporation
-
-#
-# exec-env:
-#
-# - define EXECENV_CFLAGS variable (overridden by cmdline)
-# - define EXECENV_LDFLAGS variable (overridden by cmdline)
-# - define EXECENV_ASFLAGS variable (overridden by cmdline)
-# - may override any previously defined variable
-#
-# examples for RTE_EXEC_ENV: linuxapp, bsdapp
-#
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-EXECENV_CFLAGS = -pthread -fPIC
-else
-EXECENV_CFLAGS = -pthread
-endif
-
-EXECENV_LDLIBS =
-EXECENV_ASFLAGS =
-
-ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
-EXECENV_LDLIBS += -lgcc_s
-endif
-
-EXECENV_LDLIBS-$(CONFIG_RTE_USE_LIBBSD) += -lbsd
-
-# force applications to link with gcc/icc instead of using ld
-LINK_USING_CC := 1
-
-# For shared libraries
-EXECENV_LDFLAGS += -export-dynamic
-# Add library to the group to resolve symbols
-EXECENV_LDLIBS += -ldl
-
-# EXECENV_LDLIBS-y applies to lib.so and app linking
-# while EXECENV_LDLIBS applies only to app linking.
-EXECENV_LDLIBS += $(EXECENV_LDLIBS-y)
-
-export EXECENV_CFLAGS EXECENV_LDFLAGS EXECENV_ASFLAGS EXECENV_LDLIBS
$(RTE_SRCDIR)/lib/librte_eal/common/include/rte_version.h); \
printf '%02d%02d\n' "$$1" "$$2"
-INSTALL_CONFIGS := $(sort $(filter-out %~,\
+INSTALL_CONFIGS := $(sort $(filter-out %app-icc,$(filter-out %app-clang,\
+ $(filter-out %app-gcc,$(filter-out %~,\
$(patsubst $(RTE_SRCDIR)/config/defconfig_%,%,\
- $(wildcard $(RTE_SRCDIR)/config/defconfig_*))))
+ $(wildcard $(RTE_SRCDIR)/config/defconfig_*)))))))
INSTALL_TARGETS := $(addsuffix _install,$(INSTALL_CONFIGS))
.PHONY: showconfigs
)-$(shell \
uname | awk '{ \
if ($$0 == "Linux") { \
- print "linuxapp"} \
+ print "linux"} \
else { \
- print "bsdapp"} }' \
+ print "freebsd"} }' \
)-$(shell \
${CC} --version | grep -o 'cc\|gcc\|icc\|clang' | awk \
'{ \
kerneldir ?= $(prefix)/kmod
else
ifeq ($(RTE_EXEC_ENV),linuxapp)
+RTE_EXEC_ENV=linux
+endif
+ifeq ($(RTE_EXEC_ENV),linux)
kerneldir ?= /lib/modules/$(shell uname -r)/extra/dpdk
else
kerneldir ?= /boot/modules
#
# We can specify the configuration template when doing the "make
-# config". For instance: make config T=x86_64-native-linuxapp-gcc
+# config". For instance: make config T=x86_64-native-linux-gcc
#
RTE_CONFIG_TEMPLATE :=
ifdef T
#
step2_func()
{
- TITLE="Setup linuxapp environment"
+ TITLE="Setup linux environment"
TEXT[1]="Insert IGB UIO module"
FUNC[1]="load_igb_uio_module"
#
step3_func()
{
- TITLE="Run test application for linuxapp environment"
+ TITLE="Run test application for linux environment"
TEXT[1]="Run test application (\$RTE_TARGET/app/test)"
FUNC[1]="run_test_app"