test_cgrp2_sock2.sh 1.4 KB

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