Commit f20f064e authored by Daniel T. Lee's avatar Daniel T. Lee Committed by Alexei Starovoitov

samples/bpf: refactor BPF functionality testing scripts

Currently, some test scripts are experiencing minor errors related to
executing tests.

    $ sudo ./test_cgrp2_sock.sh
    ./test_cgrp2_sock.sh: 22: test_cgrp2_sock: not found

This problem occurs because the path to the execution target is not
properly specified. Therefore, this commit solves this problem by
specifying a relative path to its executables. This commit also makes
a concise refactoring of hard-coded BPF program names.
Signed-off-by: default avatarDaniel T. Lee <danieltimlee@gmail.com>
Link: https://lore.kernel.org/r/20230115071613.125791-3-danieltimlee@gmail.comSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent d982a2e3
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
NS1=lwt_ns1 NS1=lwt_ns1
VETH0=tst_lwt1a VETH0=tst_lwt1a
VETH1=tst_lwt1b VETH1=tst_lwt1b
BPF_PROG=lwt_len_hist_kern.o
TRACE_ROOT=/sys/kernel/debug/tracing TRACE_ROOT=/sys/kernel/debug/tracing
function cleanup { function cleanup {
...@@ -30,7 +30,7 @@ ip netns exec $NS1 netserver ...@@ -30,7 +30,7 @@ ip netns exec $NS1 netserver
echo 1 > ${TRACE_ROOT}/tracing_on echo 1 > ${TRACE_ROOT}/tracing_on
cp /dev/null ${TRACE_ROOT}/trace cp /dev/null ${TRACE_ROOT}/trace
ip route add 192.168.253.2/32 encap bpf out obj lwt_len_hist_kern.o section len_hist dev $VETH0 ip route add 192.168.253.2/32 encap bpf out obj $BPF_PROG section len_hist dev $VETH0
netperf -H 192.168.253.2 -t TCP_STREAM netperf -H 192.168.253.2 -t TCP_STREAM
cat ${TRACE_ROOT}/trace | grep -v '^#' cat ${TRACE_ROOT}/trace | grep -v '^#'
./lwt_len_hist ./lwt_len_hist
......
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
# Test various socket options that can be set by attaching programs to cgroups. # Test various socket options that can be set by attaching programs to cgroups.
MY_DIR=$(dirname $0)
TEST=$MY_DIR/test_cgrp2_sock
CGRP_MNT="/tmp/cgroupv2-test_cgrp2_sock" CGRP_MNT="/tmp/cgroupv2-test_cgrp2_sock"
################################################################################ ################################################################################
...@@ -19,7 +21,7 @@ print_result() ...@@ -19,7 +21,7 @@ print_result()
check_sock() check_sock()
{ {
out=$(test_cgrp2_sock) out=$($TEST)
echo $out | grep -q "$1" echo $out | grep -q "$1"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
print_result 1 "IPv4: $2" print_result 1 "IPv4: $2"
...@@ -33,7 +35,7 @@ check_sock() ...@@ -33,7 +35,7 @@ check_sock()
check_sock6() check_sock6()
{ {
out=$(test_cgrp2_sock -6) out=$($TEST -6)
echo $out | grep -q "$1" echo $out | grep -q "$1"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
print_result 1 "IPv6: $2" print_result 1 "IPv6: $2"
...@@ -61,7 +63,7 @@ cleanup_and_exit() ...@@ -61,7 +63,7 @@ cleanup_and_exit()
[ -n "$msg" ] && echo "ERROR: $msg" [ -n "$msg" ] && echo "ERROR: $msg"
test_cgrp2_sock -d ${CGRP_MNT}/sockopts $TEST -d ${CGRP_MNT}/sockopts
ip li del cgrp2_sock ip li del cgrp2_sock
umount ${CGRP_MNT} umount ${CGRP_MNT}
...@@ -98,7 +100,7 @@ check_sock6 "dev , mark 0, priority 0" "No programs attached" ...@@ -98,7 +100,7 @@ check_sock6 "dev , mark 0, priority 0" "No programs attached"
# verify device is set # verify device is set
# #
test_cgrp2_sock -b cgrp2_sock ${CGRP_MNT}/sockopts $TEST -b cgrp2_sock ${CGRP_MNT}/sockopts
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
cleanup_and_exit 1 "Failed to install program to set device" cleanup_and_exit 1 "Failed to install program to set device"
fi fi
...@@ -107,7 +109,7 @@ check_sock6 "dev cgrp2_sock, mark 0, priority 0" "Device set" ...@@ -107,7 +109,7 @@ check_sock6 "dev cgrp2_sock, mark 0, priority 0" "Device set"
# verify mark is set # verify mark is set
# #
test_cgrp2_sock -m 666 ${CGRP_MNT}/sockopts $TEST -m 666 ${CGRP_MNT}/sockopts
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
cleanup_and_exit 1 "Failed to install program to set mark" cleanup_and_exit 1 "Failed to install program to set mark"
fi fi
...@@ -116,7 +118,7 @@ check_sock6 "dev , mark 666, priority 0" "Mark set" ...@@ -116,7 +118,7 @@ check_sock6 "dev , mark 666, priority 0" "Mark set"
# verify priority is set # verify priority is set
# #
test_cgrp2_sock -p 123 ${CGRP_MNT}/sockopts $TEST -p 123 ${CGRP_MNT}/sockopts
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
cleanup_and_exit 1 "Failed to install program to set priority" cleanup_and_exit 1 "Failed to install program to set priority"
fi fi
...@@ -125,7 +127,7 @@ check_sock6 "dev , mark 0, priority 123" "Priority set" ...@@ -125,7 +127,7 @@ check_sock6 "dev , mark 0, priority 123" "Priority set"
# all 3 at once # all 3 at once
# #
test_cgrp2_sock -b cgrp2_sock -m 666 -p 123 ${CGRP_MNT}/sockopts $TEST -b cgrp2_sock -m 666 -p 123 ${CGRP_MNT}/sockopts
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
cleanup_and_exit 1 "Failed to install program to set device, mark and priority" cleanup_and_exit 1 "Failed to install program to set device, mark and priority"
fi fi
......
...@@ -2,7 +2,10 @@ ...@@ -2,7 +2,10 @@
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
BPFFS=/sys/fs/bpf BPFFS=/sys/fs/bpf
MY_DIR=$(dirname $0)
TEST=$MY_DIR/test_cgrp2_sock2
LINK_PIN=$BPFFS/test_cgrp2_sock2 LINK_PIN=$BPFFS/test_cgrp2_sock2
BPF_PROG=$MY_DIR/sock_flags_kern.o
function config_device { function config_device {
ip netns add at_ns0 ip netns add at_ns0
...@@ -36,7 +39,7 @@ function config_bpffs { ...@@ -36,7 +39,7 @@ function config_bpffs {
} }
function attach_bpf { function attach_bpf {
./test_cgrp2_sock2 /tmp/cgroupv2/foo sock_flags_kern.o $1 $TEST /tmp/cgroupv2/foo $BPF_PROG $1
[ $? -ne 0 ] && exit 1 [ $? -ne 0 ] && exit 1
} }
......
...@@ -76,8 +76,8 @@ setup_net() { ...@@ -76,8 +76,8 @@ setup_net() {
sysctl -q net.ipv6.conf.$HOST_IFC.disable_ipv6=0 sysctl -q net.ipv6.conf.$HOST_IFC.disable_ipv6=0
sysctl -q net.ipv6.conf.$HOST_IFC.accept_dad=0 sysctl -q net.ipv6.conf.$HOST_IFC.accept_dad=0
$IP netns add ns || return $? $IP netns add $NS || return $?
$IP link set dev $NS_IFC netns ns || return $? $IP link set dev $NS_IFC netns $NS || return $?
$IP -n $NS link set dev $NS_IFC up || return $? $IP -n $NS link set dev $NS_IFC up || return $?
$IP netns exec $NS sysctl -q net.ipv6.conf.$NS_IFC.disable_ipv6=0 $IP netns exec $NS sysctl -q net.ipv6.conf.$NS_IFC.disable_ipv6=0
$IP netns exec $NS sysctl -q net.ipv6.conf.$NS_IFC.accept_dad=0 $IP netns exec $NS sysctl -q net.ipv6.conf.$NS_IFC.accept_dad=0
......
...@@ -19,6 +19,8 @@ IPVETH3="192.168.111.2" ...@@ -19,6 +19,8 @@ IPVETH3="192.168.111.2"
IP_LOCAL="192.168.99.1" IP_LOCAL="192.168.99.1"
PROG_SRC="test_lwt_bpf.c"
BPF_PROG="test_lwt_bpf.o"
TRACE_ROOT=/sys/kernel/debug/tracing TRACE_ROOT=/sys/kernel/debug/tracing
function lookup_mac() function lookup_mac()
...@@ -36,7 +38,7 @@ function lookup_mac() ...@@ -36,7 +38,7 @@ function lookup_mac()
function cleanup { function cleanup {
set +ex set +ex
rm test_lwt_bpf.o 2> /dev/null rm $BPF_PROG 2> /dev/null
ip link del $VETH0 2> /dev/null ip link del $VETH0 2> /dev/null
ip link del $VETH1 2> /dev/null ip link del $VETH1 2> /dev/null
ip link del $VETH2 2> /dev/null ip link del $VETH2 2> /dev/null
...@@ -76,7 +78,7 @@ function install_test { ...@@ -76,7 +78,7 @@ function install_test {
cleanup_routes cleanup_routes
cp /dev/null ${TRACE_ROOT}/trace cp /dev/null ${TRACE_ROOT}/trace
OPTS="encap bpf headroom 14 $1 obj test_lwt_bpf.o section $2 $VERBOSE" OPTS="encap bpf headroom 14 $1 obj $BPF_PROG section $2 $VERBOSE"
if [ "$1" == "in" ]; then if [ "$1" == "in" ]; then
ip route add table local local ${IP_LOCAL}/32 $OPTS dev lo ip route add table local local ${IP_LOCAL}/32 $OPTS dev lo
...@@ -374,7 +376,7 @@ DST_IFINDEX=$(cat /sys/class/net/$VETH0/ifindex) ...@@ -374,7 +376,7 @@ DST_IFINDEX=$(cat /sys/class/net/$VETH0/ifindex)
CLANG_OPTS="-O2 -target bpf -I ../include/" CLANG_OPTS="-O2 -target bpf -I ../include/"
CLANG_OPTS+=" -DSRC_MAC=$SRC_MAC -DDST_MAC=$DST_MAC -DDST_IFINDEX=$DST_IFINDEX" CLANG_OPTS+=" -DSRC_MAC=$SRC_MAC -DDST_MAC=$DST_MAC -DDST_IFINDEX=$DST_IFINDEX"
clang $CLANG_OPTS -c test_lwt_bpf.c -o test_lwt_bpf.o clang $CLANG_OPTS -c $PROG_SRC -o $BPF_PROG
test_ctx_xmit test_ctx_xmit
test_ctx_out test_ctx_out
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment