1a8905257SWeqaar Janjua#!/bin/bash 2a8905257SWeqaar Janjua# SPDX-License-Identifier: GPL-2.0 3a8905257SWeqaar Janjua# Copyright(c) 2020 Intel Corporation. 4a8905257SWeqaar Janjua 5a8905257SWeqaar Janjuaksft_pass=0 6a8905257SWeqaar Janjuaksft_fail=1 7a8905257SWeqaar Janjuaksft_xfail=2 8a8905257SWeqaar Janjuaksft_xpass=3 9a8905257SWeqaar Janjuaksft_skip=4 10a8905257SWeqaar Janjua 11018a8e75SMaciej FijalkowskiXSKOBJ=xskxceiver 12a8905257SWeqaar Janjua 13a8905257SWeqaar Janjuavalidate_root_exec() 14a8905257SWeqaar Janjua{ 15a8905257SWeqaar Janjua msg="skip all tests:" 16a8905257SWeqaar Janjua if [ $UID != 0 ]; then 17a8905257SWeqaar Janjua echo $msg must be run as root >&2 18895b62eeSMagnus Karlsson test_exit $ksft_fail 19a8905257SWeqaar Janjua else 20a8905257SWeqaar Janjua return $ksft_pass 21a8905257SWeqaar Janjua fi 22a8905257SWeqaar Janjua} 23a8905257SWeqaar Janjua 24a8905257SWeqaar Janjuavalidate_veth_support() 25a8905257SWeqaar Janjua{ 26a8905257SWeqaar Janjua msg="skip all tests:" 27a8905257SWeqaar Janjua if [ $(ip link add $1 type veth 2>/dev/null; echo $?;) != 0 ]; then 28a8905257SWeqaar Janjua echo $msg veth kernel support not available >&2 29895b62eeSMagnus Karlsson test_exit $ksft_skip 30a8905257SWeqaar Janjua else 31a8905257SWeqaar Janjua ip link del $1 32a8905257SWeqaar Janjua return $ksft_pass 33a8905257SWeqaar Janjua fi 34a8905257SWeqaar Janjua} 35a8905257SWeqaar Janjua 36a8905257SWeqaar Janjuatest_status() 37a8905257SWeqaar Janjua{ 38a8905257SWeqaar Janjua statusval=$1 39895b62eeSMagnus Karlsson if [ $statusval -eq $ksft_fail ]; then 40895b62eeSMagnus Karlsson echo "$2: [ FAIL ]" 41895b62eeSMagnus Karlsson elif [ $statusval -eq $ksft_skip ]; then 42895b62eeSMagnus Karlsson echo "$2: [ SKIPPED ]" 43895b62eeSMagnus Karlsson elif [ $statusval -eq $ksft_pass ]; then 44895b62eeSMagnus Karlsson echo "$2: [ PASS ]" 45a8905257SWeqaar Janjua fi 46a8905257SWeqaar Janjua} 47a8905257SWeqaar Janjua 48a8905257SWeqaar Janjuatest_exit() 49a8905257SWeqaar Janjua{ 50895b62eeSMagnus Karlsson if [ $1 -ne 0 ]; then 51895b62eeSMagnus Karlsson test_status $1 $(basename $0) 52a8905257SWeqaar Janjua fi 53895b62eeSMagnus Karlsson exit 1 54a8905257SWeqaar Janjua} 55a8905257SWeqaar Janjua 56*3666bccaSMaciej Fijalkowskicleanup_iface() 57*3666bccaSMaciej Fijalkowski{ 58*3666bccaSMaciej Fijalkowski ip link set $1 mtu $2 59*3666bccaSMaciej Fijalkowski ip link set $1 xdp off 60*3666bccaSMaciej Fijalkowski ip link set $1 xdpgeneric off 61*3666bccaSMaciej Fijalkowski} 62*3666bccaSMaciej Fijalkowski 63a8905257SWeqaar Janjuaclear_configs() 64a8905257SWeqaar Janjua{ 65a8905257SWeqaar Janjua [ $(ip link show $1 &>/dev/null; echo $?;) == 0 ] && 66ecde6061SMagnus Karlsson { ip link del $1; } 67a8905257SWeqaar Janjua} 68a8905257SWeqaar Janjua 69a8905257SWeqaar Janjuacleanup_exit() 70a8905257SWeqaar Janjua{ 7164aef77dSMagnus Karlsson clear_configs $1 $2 72a8905257SWeqaar Janjua} 73a8905257SWeqaar Janjua 74a8905257SWeqaar Janjuavalidate_ip_utility() 75a8905257SWeqaar Janjua{ 76895b62eeSMagnus Karlsson [ ! $(type -P ip) ] && { echo "'ip' not found. Skipping tests."; test_exit $ksft_skip; } 77a8905257SWeqaar Janjua} 78a8905257SWeqaar Janjua 79018a8e75SMaciej Fijalkowskiexec_xskxceiver() 80facb7cb2SWeqaar Janjua{ 81f90062b5SMagnus Karlsson if [[ $busy_poll -eq 1 ]]; then 82f90062b5SMagnus Karlsson ARGS+="-b " 83f90062b5SMagnus Karlsson fi 84f90062b5SMagnus Karlsson 8564aef77dSMagnus Karlsson ./${XSKOBJ} -i ${VETH0} -i ${VETH1} ${ARGS} 86895b62eeSMagnus Karlsson 87895b62eeSMagnus Karlsson retval=$? 88895b62eeSMagnus Karlsson test_status $retval "${TEST_NAME}" 89895b62eeSMagnus Karlsson statusList+=($retval) 90895b62eeSMagnus Karlsson nameList+=(${TEST_NAME}) 91facb7cb2SWeqaar Janjua} 92