From d947e9de7ba6641145f00bece0ff61a4ef48d804 Mon Sep 17 00:00:00 2001 From: Peter Mikus Date: Fri, 8 Jun 2018 05:59:48 +0000 Subject: [PATCH] CSIT-1114 Add DPDK download to bootstrap - Add downloading artifacts to bootstrap to be able to use latest dpdk version Change-Id: I5f07e8207780b81ad85b6053db99639c47448409 Signed-off-by: Peter Mikus --- bootstrap-verify-perf-DPDK.sh | 25 ++++++++++++++++++++++--- tests/dpdk/dpdk_scripts/cleanup_dpdk.sh | 4 ++-- tests/dpdk/dpdk_scripts/init_dpdk.sh | 4 ++-- tests/dpdk/dpdk_scripts/install_dpdk.sh | 14 +++++--------- tests/dpdk/dpdk_scripts/run_l2fwd.sh | 4 ++-- tests/dpdk/dpdk_scripts/run_l3fwd.sh | 4 ++-- 6 files changed, 35 insertions(+), 20 deletions(-) diff --git a/bootstrap-verify-perf-DPDK.sh b/bootstrap-verify-perf-DPDK.sh index e7dd6f2d0f..b75caebefc 100755 --- a/bootstrap-verify-perf-DPDK.sh +++ b/bootstrap-verify-perf-DPDK.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright (c) 2016 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -20,6 +20,8 @@ TOPOLOGIES="topologies/available/lf_testbed1.yaml \ topologies/available/lf_testbed3.yaml" SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +export PYTHONPATH=${SCRIPT_DIR} +export DEBIAN_FRONTEND=noninteractive # Reservation dir RESERVATION_DIR="/tmp/reservation_dir" @@ -31,10 +33,27 @@ LOG_ARCHIVE_DIR="$WORKSPACE/archives" mkdir -p ${JOB_ARCHIVE_DIR} mkdir -p ${LOG_ARCHIVE_DIR} -# we will download the DPDK in the robot +# If we run this script from CSIT jobs we want to use stable version +if [[ ${JOB_NAME} == csit-* ]] ; +then + DPDK_REPO='https://fast.dpdk.org/rel/' + if [[ ${TEST_TAG} == *DAILY ]] || \ + [[ ${TEST_TAG} == *WEEKLY ]]; + then + echo Downloading latest DPDK packages from repo... + DPDK_STABLE_VER=$(wget --no-check-certificate --quiet -O - ${DPDK_REPO} | \ + grep -v '2015' | grep -Eo 'dpdk-[^\"]+xz' | tail -1) + else + echo Downloading DPDK packages of specific version from repo... + DPDK_STABLE_VER='dpdk-18.05.tar.xz' + fi + wget --no-check-certificate --quiet ${DPDK_REPO}${DPDK_STABLE_VER} +else + echo "Unable to identify job type based on JOB_NAME variable: ${JOB_NAME}" + exit 1 +fi WORKING_TOPOLOGY="" -export PYTHONPATH=${SCRIPT_DIR} sudo apt-get -y update sudo apt-get -y install libpython2.7-dev python-virtualenv diff --git a/tests/dpdk/dpdk_scripts/cleanup_dpdk.sh b/tests/dpdk/dpdk_scripts/cleanup_dpdk.sh index f43746c221..a8624a8321 100755 --- a/tests/dpdk/dpdk_scripts/cleanup_dpdk.sh +++ b/tests/dpdk/dpdk_scripts/cleanup_dpdk.sh @@ -3,7 +3,7 @@ set -x # Setting variables -DPDK_VERSION=dpdk-18.02 +DPDK_DIR=dpdk ROOTDIR=/tmp/openvpp-testing TESTPMDLOG=screenlog.0 PWDDIR=$(pwd) @@ -72,7 +72,7 @@ fi sudo rm -f /dev/hugepages/* # Unbind interfaces -cd ${ROOTDIR}/${DPDK_VERSION}/ +cd ${ROOTDIR}/${DPDK_DIR}/ sudo ./usertools/dpdk-devbind.py -b ${port1_driver} ${port1_pci} || \ { echo "Unbind ${port1_pci} failed"; exit 1; } sudo ./usertools/dpdk-devbind.py -b ${port2_driver} ${port2_pci} || \ diff --git a/tests/dpdk/dpdk_scripts/init_dpdk.sh b/tests/dpdk/dpdk_scripts/init_dpdk.sh index 2bf4125f83..d6565e063b 100755 --- a/tests/dpdk/dpdk_scripts/init_dpdk.sh +++ b/tests/dpdk/dpdk_scripts/init_dpdk.sh @@ -3,7 +3,7 @@ set -x # Setting variables -DPDK_VERSION=dpdk-18.02 +DPDK_DIR=dpdk ROOTDIR=/tmp/openvpp-testing PWDDIR=$(pwd) @@ -18,7 +18,7 @@ else MACHINE="native" fi -cd ${ROOTDIR}/${DPDK_VERSION}/ +cd ${ROOTDIR}/${DPDK_DIR}/ modprobe uio echo "RC = $?" diff --git a/tests/dpdk/dpdk_scripts/install_dpdk.sh b/tests/dpdk/dpdk_scripts/install_dpdk.sh index 57085f3591..4fcbf080d9 100755 --- a/tests/dpdk/dpdk_scripts/install_dpdk.sh +++ b/tests/dpdk/dpdk_scripts/install_dpdk.sh @@ -15,24 +15,20 @@ else MACHINE="native" fi -DPDK_VERSION=dpdk-18.02 -DPDK_DIR=${DPDK_VERSION} -DPDK_PACKAGE=${DPDK_DIR}.tar.xz +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=${ARCH}-${MACHINE}-linuxapp-gcc -j || \ - { echo "Failed to compile $DPDK_VERSION"; exit 1; } + { echo "Failed to compile DPDK"; exit 1; } cd ${PWDDIR} # Compile the l3fwd diff --git a/tests/dpdk/dpdk_scripts/run_l2fwd.sh b/tests/dpdk/dpdk_scripts/run_l2fwd.sh index 578c12c054..0e07b68264 100755 --- a/tests/dpdk/dpdk_scripts/run_l2fwd.sh +++ b/tests/dpdk/dpdk_scripts/run_l2fwd.sh @@ -3,7 +3,7 @@ set -x # Setting variables -DPDK_VERSION=dpdk-18.02 +DPDK_DIR=dpdk ROOTDIR=/tmp/openvpp-testing TESTPMDLOG=screenlog.0 PWDDIR=$(pwd) @@ -82,7 +82,7 @@ sudo rm -f /dev/hugepages/* sleep 2 -cd ${ROOTDIR}/${DPDK_VERSION}/ +cd ${ROOTDIR}/${DPDK_DIR}/ rm -f ${TESTPMDLOG} TESTPMD_BIN=./${arch}-${machine}-linuxapp-gcc/app/testpmd diff --git a/tests/dpdk/dpdk_scripts/run_l3fwd.sh b/tests/dpdk/dpdk_scripts/run_l3fwd.sh index 11222c1bf8..014ba2717f 100755 --- a/tests/dpdk/dpdk_scripts/run_l3fwd.sh +++ b/tests/dpdk/dpdk_scripts/run_l3fwd.sh @@ -3,7 +3,7 @@ set -x # Setting variables -DPDK_VERSION=dpdk-18.02 +DPDK_DIR=dpdk ROOTDIR=/tmp/openvpp-testing L3FWDLOG=screenlog.0 PWDDIR=$(pwd) @@ -84,7 +84,7 @@ sudo rm -f /dev/hugepages/* sleep 2 #run the l3fwd -cd ${ROOTDIR}/${DPDK_VERSION}/ +cd ${ROOTDIR}/${DPDK_DIR}/ rm -f ${L3FWDLOG} if [ "$jumbo_frames" = "yes" ]; then sudo sh -c "screen -dmSL DPDK-test ./examples/l3fwd/build/app/l3fwd \ -- 2.16.6