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

pm_netlink.sh (5445B)


      1#!/bin/bash
      2# SPDX-License-Identifier: GPL-2.0
      3
      4ksft_skip=4
      5ret=0
      6
      7usage() {
      8	echo "Usage: $0 [ -h ]"
      9}
     10
     11
     12while getopts "$optstring" option;do
     13	case "$option" in
     14	"h")
     15		usage $0
     16		exit 0
     17		;;
     18	"?")
     19		usage $0
     20		exit 1
     21		;;
     22	esac
     23done
     24
     25sec=$(date +%s)
     26rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
     27ns1="ns1-$rndh"
     28err=$(mktemp)
     29ret=0
     30
     31cleanup()
     32{
     33	rm -f $err
     34	ip netns del $ns1
     35}
     36
     37ip -Version > /dev/null 2>&1
     38if [ $? -ne 0 ];then
     39	echo "SKIP: Could not run test without ip tool"
     40	exit $ksft_skip
     41fi
     42
     43trap cleanup EXIT
     44
     45ip netns add $ns1 || exit $ksft_skip
     46ip -net $ns1 link set lo up
     47ip netns exec $ns1 sysctl -q net.mptcp.enabled=1
     48
     49check()
     50{
     51	local cmd="$1"
     52	local expected="$2"
     53	local msg="$3"
     54	local out=`$cmd 2>$err`
     55	local cmd_ret=$?
     56
     57	printf "%-50s %s" "$msg"
     58	if [ $cmd_ret -ne 0 ]; then
     59		echo "[FAIL] command execution '$cmd' stderr "
     60		cat $err
     61		ret=1
     62	elif [ "$out" = "$expected" ]; then
     63		echo "[ OK ]"
     64	else
     65		echo -n "[FAIL] "
     66		echo "expected '$expected' got '$out'"
     67		ret=1
     68	fi
     69}
     70
     71check "ip netns exec $ns1 ./pm_nl_ctl dump" "" "defaults addr list"
     72check "ip netns exec $ns1 ./pm_nl_ctl limits" "accept 0
     73subflows 2" "defaults limits"
     74
     75ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.1
     76ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.2 flags subflow dev lo
     77ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.3 flags signal,backup
     78check "ip netns exec $ns1 ./pm_nl_ctl get 1" "id 1 flags  10.0.1.1" "simple add/get addr"
     79
     80check "ip netns exec $ns1 ./pm_nl_ctl dump" \
     81"id 1 flags  10.0.1.1
     82id 2 flags subflow dev lo 10.0.1.2
     83id 3 flags signal,backup 10.0.1.3" "dump addrs"
     84
     85ip netns exec $ns1 ./pm_nl_ctl del 2
     86check "ip netns exec $ns1 ./pm_nl_ctl get 2" "" "simple del addr"
     87check "ip netns exec $ns1 ./pm_nl_ctl dump" \
     88"id 1 flags  10.0.1.1
     89id 3 flags signal,backup 10.0.1.3" "dump addrs after del"
     90
     91ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.3
     92check "ip netns exec $ns1 ./pm_nl_ctl get 4" "" "duplicate addr"
     93
     94ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.4 flags signal
     95check "ip netns exec $ns1 ./pm_nl_ctl get 4" "id 4 flags signal 10.0.1.4" "id addr increment"
     96
     97for i in `seq 5 9`; do
     98	ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.$i flags signal >/dev/null 2>&1
     99done
    100check "ip netns exec $ns1 ./pm_nl_ctl get 9" "id 9 flags signal 10.0.1.9" "hard addr limit"
    101check "ip netns exec $ns1 ./pm_nl_ctl get 10" "" "above hard addr limit"
    102
    103ip netns exec $ns1 ./pm_nl_ctl del 9
    104for i in `seq 10 255`; do
    105	ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.9 id $i
    106	ip netns exec $ns1 ./pm_nl_ctl del $i
    107done
    108check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags  10.0.1.1
    109id 3 flags signal,backup 10.0.1.3
    110id 4 flags signal 10.0.1.4
    111id 5 flags signal 10.0.1.5
    112id 6 flags signal 10.0.1.6
    113id 7 flags signal 10.0.1.7
    114id 8 flags signal 10.0.1.8" "id limit"
    115
    116ip netns exec $ns1 ./pm_nl_ctl flush
    117check "ip netns exec $ns1 ./pm_nl_ctl dump" "" "flush addrs"
    118
    119ip netns exec $ns1 ./pm_nl_ctl limits 9 1
    120check "ip netns exec $ns1 ./pm_nl_ctl limits" "accept 0
    121subflows 2" "rcv addrs above hard limit"
    122
    123ip netns exec $ns1 ./pm_nl_ctl limits 1 9
    124check "ip netns exec $ns1 ./pm_nl_ctl limits" "accept 0
    125subflows 2" "subflows above hard limit"
    126
    127ip netns exec $ns1 ./pm_nl_ctl limits 8 8
    128check "ip netns exec $ns1 ./pm_nl_ctl limits" "accept 8
    129subflows 8" "set limits"
    130
    131ip netns exec $ns1 ./pm_nl_ctl flush
    132ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.1
    133ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.2
    134ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.3 id 100
    135ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.4
    136ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.5 id 254
    137ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.6
    138ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.7
    139ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.8
    140check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags  10.0.1.1
    141id 2 flags  10.0.1.2
    142id 3 flags  10.0.1.7
    143id 4 flags  10.0.1.8
    144id 100 flags  10.0.1.3
    145id 101 flags  10.0.1.4
    146id 254 flags  10.0.1.5
    147id 255 flags  10.0.1.6" "set ids"
    148
    149ip netns exec $ns1 ./pm_nl_ctl flush
    150ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.1
    151ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.2 id 254
    152ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.3
    153ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.4
    154ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.5 id 253
    155ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.6
    156ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.7
    157ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.8
    158check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags  10.0.0.1
    159id 2 flags  10.0.0.4
    160id 3 flags  10.0.0.6
    161id 4 flags  10.0.0.7
    162id 5 flags  10.0.0.8
    163id 253 flags  10.0.0.5
    164id 254 flags  10.0.0.2
    165id 255 flags  10.0.0.3" "wrap-around ids"
    166
    167ip netns exec $ns1 ./pm_nl_ctl flush
    168ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.1 flags subflow
    169ip netns exec $ns1 ./pm_nl_ctl set 10.0.1.1 flags backup
    170check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags \
    171subflow,backup 10.0.1.1" "set flags (backup)"
    172ip netns exec $ns1 ./pm_nl_ctl set 10.0.1.1 flags nobackup
    173check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags \
    174subflow 10.0.1.1" "          (nobackup)"
    175ip netns exec $ns1 ./pm_nl_ctl set id 1 flags fullmesh
    176check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags \
    177subflow,fullmesh 10.0.1.1" "          (fullmesh)"
    178ip netns exec $ns1 ./pm_nl_ctl set id 1 flags nofullmesh
    179check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags \
    180subflow 10.0.1.1" "          (nofullmesh)"
    181ip netns exec $ns1 ./pm_nl_ctl set id 1 flags backup,fullmesh
    182check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags \
    183subflow,backup,fullmesh 10.0.1.1" "          (backup,fullmesh)"
    184
    185exit $ret