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

test_cgrp2_sock2.sh (1806B)


      1#!/bin/bash
      2# SPDX-License-Identifier: GPL-2.0
      3
      4BPFFS=/sys/fs/bpf
      5LINK_PIN=$BPFFS/test_cgrp2_sock2
      6
      7function config_device {
      8	ip netns add at_ns0
      9	ip link add veth0 type veth peer name veth0b
     10	ip link set veth0b up
     11	ip link set veth0 netns at_ns0
     12	ip netns exec at_ns0 ip addr add 172.16.1.100/24 dev veth0
     13	ip netns exec at_ns0 ip addr add 2401:db00::1/64 dev veth0 nodad
     14	ip netns exec at_ns0 ip link set dev veth0 up
     15	ip addr add 172.16.1.101/24 dev veth0b
     16	ip addr add 2401:db00::2/64 dev veth0b nodad
     17}
     18
     19function config_cgroup {
     20	rm -rf /tmp/cgroupv2
     21	mkdir -p /tmp/cgroupv2
     22	mount -t cgroup2 none /tmp/cgroupv2
     23	mkdir -p /tmp/cgroupv2/foo
     24	echo $$ >> /tmp/cgroupv2/foo/cgroup.procs
     25}
     26
     27function config_bpffs {
     28	if mount | grep $BPFFS > /dev/null; then
     29		echo "bpffs already mounted"
     30	else
     31		echo "bpffs not mounted. Mounting..."
     32		mount -t bpf none $BPFFS
     33	fi
     34}
     35
     36function attach_bpf {
     37	./test_cgrp2_sock2 /tmp/cgroupv2/foo sock_flags_kern.o $1
     38	[ $? -ne 0 ] && exit 1
     39}
     40
     41function cleanup {
     42	rm -rf $LINK_PIN
     43	ip link del veth0b
     44	ip netns delete at_ns0
     45	umount /tmp/cgroupv2
     46	rm -rf /tmp/cgroupv2
     47}
     48
     49cleanup 2>/dev/null
     50
     51set -e
     52config_device
     53config_cgroup
     54config_bpffs
     55set +e
     56
     57#
     58# Test 1 - fail ping6
     59#
     60attach_bpf 0
     61ping -c1 -w1 172.16.1.100
     62if [ $? -ne 0 ]; then
     63	echo "ping failed when it should succeed"
     64	cleanup
     65	exit 1
     66fi
     67
     68ping6 -c1 -w1 2401:db00::1
     69if [ $? -eq 0 ]; then
     70	echo "ping6 succeeded when it should not"
     71	cleanup
     72	exit 1
     73fi
     74
     75rm -rf $LINK_PIN
     76sleep 1                 # Wait for link detach
     77
     78#
     79# Test 2 - fail ping
     80#
     81attach_bpf 1
     82ping6 -c1 -w1 2401:db00::1
     83if [ $? -ne 0 ]; then
     84	echo "ping6 failed when it should succeed"
     85	cleanup
     86	exit 1
     87fi
     88
     89ping -c1 -w1 172.16.1.100
     90if [ $? -eq 0 ]; then
     91	echo "ping succeeded when it should not"
     92	cleanup
     93	exit 1
     94fi
     95
     96cleanup
     97echo
     98echo "*** PASS ***"