X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=VNFs%2FDPPD-PROX%2FREADME;h=1d7ad51f8d5340f85b623b0d0f69dabd276cfd12;hb=18dbfb93ed8aa67fc9266fa1a6ab40baaf54872a;hp=1e4b35855fbc5f4728d8613cece41463566f7385;hpb=b71a4cfd39acd385a8ac80bdae4cb83064cc5e25;p=samplevnf.git diff --git a/VNFs/DPPD-PROX/README b/VNFs/DPPD-PROX/README index 1e4b3585..1d7ad51f 100644 --- a/VNFs/DPPD-PROX/README +++ b/VNFs/DPPD-PROX/README @@ -24,42 +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 and 19.08. - -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 --------------------------------- +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 + +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 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 +sudo ninja install +sudo ldconfig + +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 +point to the correct location. + +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 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]