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