X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=tests%2Fdpdk%2Fdpdk_scripts%2Finstall_dpdk.sh;h=4fcbf080d9ad86b8af489cab6347d5f355d0baa2;hp=2b50c67dac62e0f6df20b0b520bc3013cfbcdd06;hb=d947e9de7ba6641145f00bece0ff61a4ef48d804;hpb=117d3c4991b412a0756daadeee0a68edb0c4cf26 diff --git a/tests/dpdk/dpdk_scripts/install_dpdk.sh b/tests/dpdk/dpdk_scripts/install_dpdk.sh index 2b50c67dac..4fcbf080d9 100755 --- a/tests/dpdk/dpdk_scripts/install_dpdk.sh +++ b/tests/dpdk/dpdk_scripts/install_dpdk.sh @@ -3,29 +3,37 @@ set -x # Setting variables -DPDK_VERSION=dpdk-17.08 -DPDK_DIR=${DPDK_VERSION} -DPDK_PACKAGE=${DPDK_DIR}.tar.xz + +# set arch, default to x86_64 if none given +ARCH=${1:-"x86_64"} + +# dpdk prefers "arm64" to "aarch64" and does not allow arm64 native target +if [ $ARCH == "aarch64" ]; then + ARCH="arm64" + MACHINE="armv8a" +else + MACHINE="native" +fi + +DPDK_DIR=dpdk ROOTDIR=/tmp/openvpp-testing PWDDIR=$(pwd) -# Download the DPDK package cd ${ROOTDIR} -wget "fast.dpdk.org/rel/${DPDK_PACKAGE}" || \ - { echo "Failed to download $DPDK_PACKAGE"; exit 1; } -tar xJvf ${DPDK_PACKAGE} || \ - { echo "Failed to extract $DPDK_PACKAGE"; exit 1; } +mkdir ${DPDK_DIR} +tar -xvf dpdk*.tar.xz --strip=1 --directory dpdk || \ + { echo "Failed to extract DPDK"; exit 1; } # Compile the DPDK cd ./${DPDK_DIR} sudo sed -i 's/^CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n/CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=y/g' ./config/common_base -make install T=x86_64-native-linuxapp-gcc -j || \ - { echo "Failed to compile $DPDK_VERSION"; exit 1; } +make install T=${ARCH}-${MACHINE}-linuxapp-gcc -j || \ + { echo "Failed to compile DPDK"; exit 1; } cd ${PWDDIR} # Compile the l3fwd export RTE_SDK=${ROOTDIR}/${DPDK_DIR}/ -export RTE_TARGET=x86_64-native-linuxapp-gcc +export RTE_TARGET=${ARCH}-${MACHINE}-linuxapp-gcc cd ${RTE_SDK}/examples/l3fwd sudo sed -i 's/^#define RTE_TEST_RX_DESC_DEFAULT 128/#define RTE_TEST_RX_DESC_DEFAULT 2048/g' ./main.c sudo sed -i 's/^#define RTE_TEST_TX_DESC_DEFAULT 512/#define RTE_TEST_TX_DESC_DEFAULT 2048/g' ./main.c