diff options
author | Gabriel Ganne <gabriel.ganne@enea.com> | 2017-11-27 15:38:53 +0100 |
---|---|---|
committer | Jan Gelety <jgelety@cisco.com> | 2018-01-10 15:42:43 +0100 |
commit | c7eb2002bcd007520309feb3e11a26ff847a4e05 (patch) | |
tree | 84ea1d5513da1bb0f4e078aec87b44cf653a7e7c /tests/dpdk | |
parent | a95c54b7821596402e0aa7136cd7d1de71a5b187 (diff) |
add new topology parameter: arch
if unset, arch variable will default to "x86_64"
* Note on "arm64" vs "aarch64"
debian-based uses arm64
rhel-based uses aarch64
qemu binaries of both distribs uses aarch64
dpdk uses arm64
vpp uses aarch64
python machine modules uses aarch64
=> prefer aarch64 to use the same nomenclature as vpp
* add ARCH argument to:
init_dpdk.sh, install_dpdk.sh, run_l2fwd.sh, install_tldk.sh, run_tldk.sh.
default to x86_64
converts "aarch64" if needed for dpdk naming convention
* fixed terminal end detection to allow "~]# "
add dut node arch as param to all robot set bin calls
* add --target-list flag to qemu_build.sh
defaults to x86_64-softmmu
* add arch flag to all the topology files
* topologies/available/ (and example file)
* resources/tools/virl/topologies/
* set _qemu_bin path using node['arch'] in qemu_set_node()
Change-Id: If46d88d064d213d3e4c6fc584bb8e0d4b6428cb8
Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>
Diffstat (limited to 'tests/dpdk')
-rwxr-xr-x | tests/dpdk/dpdk_scripts/init_dpdk.sh | 14 | ||||
-rwxr-xr-x | tests/dpdk/dpdk_scripts/install_dpdk.sh | 17 | ||||
-rwxr-xr-x | tests/dpdk/dpdk_scripts/run_l2fwd.sh | 15 |
3 files changed, 41 insertions, 5 deletions
diff --git a/tests/dpdk/dpdk_scripts/init_dpdk.sh b/tests/dpdk/dpdk_scripts/init_dpdk.sh index 09a96283d1..db9dee5d2d 100755 --- a/tests/dpdk/dpdk_scripts/init_dpdk.sh +++ b/tests/dpdk/dpdk_scripts/init_dpdk.sh @@ -6,6 +6,18 @@ set -x DPDK_VERSION=dpdk-17.11 ROOTDIR=/tmp/openvpp-testing PWDDIR=$(pwd) + +# set arch, default to x86_64 if none given +ARCH=${3:-"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 + cd ${ROOTDIR}/${DPDK_VERSION}/ modprobe uio @@ -25,7 +37,7 @@ then { echo "Failed to remove uio_pci_generic module"; exit 1; } fi -insmod ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko || \ +insmod ./${ARCH}-${MACHINE}-linuxapp-gcc/kmod/igb_uio.ko || \ { echo "Failed to insert igb_uio module"; exit 1; } # Binding diff --git a/tests/dpdk/dpdk_scripts/install_dpdk.sh b/tests/dpdk/dpdk_scripts/install_dpdk.sh index 6a7c11d8c1..945defe9a2 100755 --- a/tests/dpdk/dpdk_scripts/install_dpdk.sh +++ b/tests/dpdk/dpdk_scripts/install_dpdk.sh @@ -3,6 +3,19 @@ set -x # Setting variables + +# 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_VERSION=dpdk-17.11 DPDK_DIR=${DPDK_VERSION} DPDK_PACKAGE=${DPDK_DIR}.tar.xz @@ -19,13 +32,13 @@ tar xJvf ${DPDK_PACKAGE} || \ # 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 || \ +make install T=${ARCH}-${MACHINE}-linuxapp-gcc -j || \ { echo "Failed to compile $DPDK_VERSION"; 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 diff --git a/tests/dpdk/dpdk_scripts/run_l2fwd.sh b/tests/dpdk/dpdk_scripts/run_l2fwd.sh index bbd69b6dec..80b688eccf 100755 --- a/tests/dpdk/dpdk_scripts/run_l2fwd.sh +++ b/tests/dpdk/dpdk_scripts/run_l2fwd.sh @@ -13,6 +13,15 @@ cpu_corelist=$1 nb_cores=$2 queue_nums=$3 jumbo_frames=$4 +arch=${5:-"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 # Try to kill the testpmd sudo pgrep testpmd @@ -75,8 +84,10 @@ sleep 2 cd ${ROOTDIR}/${DPDK_VERSION}/ rm -f ${TESTPMDLOG} +TESTPMD_BIN=./${arch}-${machine}-linuxapp-gcc/app/testpmd + if [ "$jumbo_frames" = "yes" ]; then - sudo sh -c "screen -dmSL DPDK-test ./x86_64-native-linuxapp-gcc/app/testpmd \ + sudo sh -c "screen -dmSL DPDK-test $TESTPMD_BIN \ -l ${cpu_corelist} -n 4 -- \ --numa \ --nb-ports=2 \ @@ -93,7 +104,7 @@ if [ "$jumbo_frames" = "yes" ]; then --disable-link-check \ --auto-start" else - sudo sh -c "screen -dmSL DPDK-test ./x86_64-native-linuxapp-gcc/app/testpmd \ + sudo sh -c "screen -dmSL DPDK-test $TESTPMD_BIN \ -l ${cpu_corelist} -n 4 -- \ --numa \ --nb-ports=2 \ |