From 71af55a06ef268178530697c48c34bc2c765bd67 Mon Sep 17 00:00:00 2001 From: Patrice Buriez Date: Fri, 6 Jan 2023 19:11:13 +0000 Subject: Update README and version.h (DPDK 22.11) Reflect support for DPDK 22.11 and refresh compilation instructions. Signed-off-by: Patrice Buriez Change-Id: I082c630a13783ba012b4ee703b00999cac0f277b --- VNFs/DPPD-PROX/README | 134 +++++++++++++++++++++++++++++------------------ VNFs/DPPD-PROX/version.h | 2 +- 2 files changed, 83 insertions(+), 53 deletions(-) (limited to 'VNFs') diff --git a/VNFs/DPPD-PROX/README b/VNFs/DPPD-PROX/README index 344214f0..1d7ad51f 100644 --- a/VNFs/DPPD-PROX/README +++ b/VNFs/DPPD-PROX/README @@ -24,74 +24,104 @@ finer grained network functions like QoS, Routing, load-balancing... Compiling and running this application -------------------------------------- -This application supports DPDK 16.04, 16.11, 16.11.1, 17.02, 17.05, 17.08, -17.11, 18.02, 18.05, 18.08, 18.11, 19.02, 19.05, 19.08, 19.11, 20.02 and -20.05 20.11 +This application supports DPDK 16.04, 16.07, 16.11, 17.02, 17.05, 17.08, +17.11, 18.02, 18.05, 18.08, 18.11, 19.02, 19.05, 19.08, 19.11, 20.02, 20.05, +20.08, 20.11, 21.02, 21.05, 21.08, 21.11, 22.03, 22.07, 22.11 -Meson compilation ------------------ -Support for 'make' has been deprecated in DPDK from v20.11 onward. +DPDK meson compilation +---------------------- +Compilation with meson and ninja is supported since DPDK 18.02, while support +for make has been removed in DPDK 20.11. Example: DPDK 20.11 installation with meson ------------------------------------------- +cd /your/path/for/dpdk/meson/compilation/ git clone http://dpdk.org/git/dpdk-stable +cd dpdk-stable/ git checkout 20.11 -meson build -cd build +meson setup build +# For DPDK 21.11 and above, please run: +# meson setup -Denable_driver_sdk=true build # instead, or +# meson configure build/ -Denable_driver_sdk=true # afterwards. +cd build/ ninja -ninja install -ldconfig +sudo ninja install +sudo ldconfig -PROX meson compilation (From the root of this repo) --------------------------------------------------- +PROX meson compilation +---------------------- Depending on the distribution in use the DPDK libraries will be installed in -different locations. The 'PKG_CONFIG_PATH' environment variable is used to +different locations. The PKG_CONFIG_PATH environment variable is used to point to the correct location. -For RHEL/CentOS systems: -export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig -meson build -cd build -ninja - -Additional options can be passed to the meson build system. See the -'meson_options.txt' file for possible options - -Legacy Make compilation ------------------------ -The following commands assume that the following variables have been set: - -export RTE_SDK=/path/to/dpdk -export RTE_TARGET=x86_64-native-linuxapp-gcc - -IPSec is only supported in PROX starting from DPDK 17.11 -It will only be compiled if CONFIG_RTE_LIBRTE_PMD_AESNI_MB is -set in DPDK .config. This also requires AESNI_MULTI_BUFFER_LIB_PATH to point to -the multi-buffer library which can be downloaded from -. -See doc/guides/cryptodevs/aesni_mb.rst within dpdk for more details - -Example: DPDK 17.05 installation with make +On RHEL/CentOS: export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig +On Ubuntu: export PKG_CONFIG_PATH=/usr/local/lib/x86_64-linux-gnu/pkgconfig + +cd /the/path/where/you/cloned/this/repo/ +cd VNFs/DPPD-PROX/ +meson setup build +# Additional options can be specified on the 'meson setup' command line, or +# using 'meson configure' afterwards. See the meson_options.txt file for +# possible options. +ninja -C build/ + +Legacy DPDK make compilation +---------------------------- +Compilation with make has been supported until DPDK 20.08, and has been removed +in DPDK 20.11. + +The following commands require that the following environment variables are +properly defined, as shown in the examples below: +- RTE_SDK: absolute path to the DPDK sources directory, +- RTE_TARGET: target (arch-machine-execenv-toolchain format) for + which we are building DPDK, +- RTE_DEVEL_BUILD: set it to 'n' to prevent warnings to be considered + as errors when building DPDK inside a git tree. + +Configuration options can be defined, before building DPDK, by means of +appending lines into the config/defconfig_$RTE_TARGET file. + +For example, IPSec is supported in PROX (handle_esp.c) since DPDK 17.11, +although it has not been recently verified, but it only gets compiled when +CONFIG_RTE_LIBRTE_PMD_AESNI_MB=y has been defined in DPDK configuration. It also +requires AESNI_MULTI_BUFFER_LIB_PATH environment variable to point to the +"Multi-Buffer Crypto for IPsec" library, which can be downloaded from +https://github.com/intel/intel-ipsec-mb. See doc/guides/cryptodevs/aesni_mb.rst +within DPDK sources directory for more details. + +Example: DPDK 20.05 installation with make ------------------------------------------ +cd /your/path/for/dpdk/make/compilation/ git clone http://dpdk.org/git/dpdk -cd dpdk -git checkout v17.05 -make install T=$RTE_TARGET - -PROX make compilation ----------------- -The Makefile with this application expects RTE_SDK to point to the -root directory of DPDK (e.g. export RTE_SDK=/root/dpdk). If RTE_TARGET -has not been set, x86_64-native-linuxapp-gcc will be assumed. +cd dpdk/ +git checkout v20.05 +export RTE_SDK=$PWD +export RTE_TARGET=x86_64-native-linuxapp-gcc +export RTE_DEVEL_BUILD=n +# Edit config/defconfig_$RTE_TARGET file to define options as needed. +make config T=$RTE_TARGET O=$RTE_TARGET +make O=$RTE_TARGET + +Legacy PROX make compilation +---------------------------- +As explained above, PROX Makefile expects RTE_SDK to point to the DPDK sources +directory. If RTE_TARGET is not set, it defaults to x86_64-native-linuxapp-gcc. + +cd /the/path/where/you/cloned/this/repo/ +cd VNFs/DPPD-PROX/ +export RTE_SDK=/your/path/for/dpdk/make/compilation/./dpdk/ +export RTE_TARGET=x86_64-native-linuxapp-gcc +export RTE_DEVEL_BUILD=n +make Running PROX ------------ -After DPDK has been set up, run make from the directory where you have -extracted this application. A build directory will be created -containing the PROX executable. The usage of the application is shown -below. Note that this application assumes that all required ports have -been bound to the DPDK provided igb_uio driver. Refer to the "Getting -Started Guide - DPDK" document for more details. +After DPDK has been installed and PROX has been compiled, the build subdirectory +has been created and contains the PROX executable. The usage of the application +is shown below. Note that this application assumes that all required ports have +been bound to the DPDK provided igb_uio driver. Refer to the "Getting Started +Guide" (http://doc.dpdk.org/guides/linux_gsg/ or doc/guides/linux_gsg/*.rst in +DPDK sources directory) for more details. Usage: ./build/prox [-f CONFIG_FILE] [-l LOG_FILE] [-p] [-o DISPLAY] [-v] [-a|-e] \ [-m|-s|-i] [-n] [-w DEF] [-q] [-k] [-d] [-z] [-r VAL] [-u] [-t] diff --git a/VNFs/DPPD-PROX/version.h b/VNFs/DPPD-PROX/version.h index fe5fcbfc..355a5dcb 100644 --- a/VNFs/DPPD-PROX/version.h +++ b/VNFs/DPPD-PROX/version.h @@ -19,7 +19,7 @@ /* PROGRAM_NAME defined through Makefile */ #define VERSION_MAJOR 0 // Pre-production -#define VERSION_MINOR 2005 // 20.05 i.e. May 2020 +#define VERSION_MINOR 2212 // 22.12 i.e. December 2022 #define VERSION_REV 0 static inline char *VERSION_STR(void) -- cgit 1.2.3-korg