cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

xsk_prereqs.sh (1786B)


      1#!/bin/bash
      2# SPDX-License-Identifier: GPL-2.0
      3# Copyright(c) 2020 Intel Corporation.
      4
      5ksft_pass=0
      6ksft_fail=1
      7ksft_xfail=2
      8ksft_xpass=3
      9ksft_skip=4
     10
     11XSKOBJ=xdpxceiver
     12
     13validate_root_exec()
     14{
     15	msg="skip all tests:"
     16	if [ $UID != 0 ]; then
     17		echo $msg must be run as root >&2
     18		test_exit $ksft_fail
     19	else
     20		return $ksft_pass
     21	fi
     22}
     23
     24validate_veth_support()
     25{
     26	msg="skip all tests:"
     27	if [ $(ip link add $1 type veth 2>/dev/null; echo $?;) != 0 ]; then
     28		echo $msg veth kernel support not available >&2
     29		test_exit $ksft_skip
     30	else
     31		ip link del $1
     32		return $ksft_pass
     33	fi
     34}
     35
     36test_status()
     37{
     38	statusval=$1
     39	if [ $statusval -eq $ksft_fail ]; then
     40		echo "$2: [ FAIL ]"
     41	elif [ $statusval -eq $ksft_skip ]; then
     42		echo "$2: [ SKIPPED ]"
     43	elif [ $statusval -eq $ksft_pass ]; then
     44		echo "$2: [ PASS ]"
     45	fi
     46}
     47
     48test_exit()
     49{
     50	if [ $1 -ne 0 ]; then
     51		test_status $1 $(basename $0)
     52	fi
     53	exit 1
     54}
     55
     56clear_configs()
     57{
     58	if [ $(ip netns show | grep $3 &>/dev/null; echo $?;) == 0 ]; then
     59		[ $(ip netns exec $3 ip link show $2 &>/dev/null; echo $?;) == 0 ] &&
     60			{ ip netns exec $3 ip link del $2; }
     61		ip netns del $3
     62	fi
     63	#Once we delete a veth pair node, the entire veth pair is removed,
     64	#this is just to be cautious just incase the NS does not exist then
     65	#veth node inside NS won't get removed so we explicitly remove it
     66	[ $(ip link show $1 &>/dev/null; echo $?;) == 0 ] &&
     67		{ ip link del $1; }
     68}
     69
     70cleanup_exit()
     71{
     72	clear_configs $1 $2 $3
     73}
     74
     75validate_ip_utility()
     76{
     77	[ ! $(type -P ip) ] && { echo "'ip' not found. Skipping tests."; test_exit $ksft_skip; }
     78}
     79
     80execxdpxceiver()
     81{
     82        if [[ $busy_poll -eq 1 ]]; then
     83	        ARGS+="-b "
     84	fi
     85
     86	./${XSKOBJ} -i ${VETH0} -i ${VETH1},${NS1} ${ARGS}
     87
     88	retval=$?
     89	test_status $retval "${TEST_NAME}"
     90	statusList+=($retval)
     91	nameList+=(${TEST_NAME})
     92}