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