Server IP : 104.21.38.3 / Your IP : 162.158.170.171 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/src/linux-headers-5.15.0-143-generic/tools/testing/selftests/drivers/net/netdevsim/ |
Upload File : |
#!/bin/bash # SPDX-License-Identifier: GPL-2.0 # # This test is for checking the psample module. It makes use of netdevsim # which periodically generates "sampled" packets. lib_dir=$(dirname $0)/../../../net/forwarding ALL_TESTS=" psample_enable_test psample_group_num_test psample_md_test " NETDEVSIM_PATH=/sys/bus/netdevsim/ DEV_ADDR=1337 DEV=netdevsim${DEV_ADDR} SYSFS_NET_DIR=/sys/bus/netdevsim/devices/$DEV/net/ PSAMPLE_DIR=/sys/kernel/debug/netdevsim/$DEV/psample/ CAPTURE_FILE=$(mktemp) NUM_NETIFS=0 source $lib_dir/lib.sh DEVLINK_DEV= source $lib_dir/devlink_lib.sh DEVLINK_DEV=netdevsim/${DEV} # Available at https://github.com/Mellanox/libpsample require_command psample psample_capture() { rm -f $CAPTURE_FILE timeout 2 ip netns exec testns1 psample &> $CAPTURE_FILE } psample_enable_test() { RET=0 echo 1 > $PSAMPLE_DIR/enable check_err $? "Failed to enable sampling when should not" echo 1 > $PSAMPLE_DIR/enable 2>/dev/null check_fail $? "Sampling enablement succeeded when should fail" psample_capture if [ $(cat $CAPTURE_FILE | wc -l) -eq 0 ]; then check_err 1 "Failed to capture sampled packets" fi echo 0 > $PSAMPLE_DIR/enable check_err $? "Failed to disable sampling when should not" echo 0 > $PSAMPLE_DIR/enable 2>/dev/null check_fail $? "Sampling disablement succeeded when should fail" psample_capture if [ $(cat $CAPTURE_FILE | wc -l) -ne 0 ]; then check_err 1 "Captured sampled packets when should not" fi log_test "psample enable / disable" } psample_group_num_test() { RET=0 echo 1234 > $PSAMPLE_DIR/group_num echo 1 > $PSAMPLE_DIR/enable psample_capture grep -q -e "group 1234" $CAPTURE_FILE check_err $? "Sampled packets reported with wrong group number" # New group number should only be used after disable / enable. echo 4321 > $PSAMPLE_DIR/group_num psample_capture grep -q -e "group 4321" $CAPTURE_FILE check_fail $? "Group number changed while sampling is active" echo 0 > $PSAMPLE_DIR/enable && echo 1 > $PSAMPLE_DIR/enable psample_capture grep -q -e "group 4321" $CAPTURE_FILE check_err $? "Group number did not change after restarting sampling" log_test "psample group number" echo 0 > $PSAMPLE_DIR/enable } psample_md_test() { RET=0 echo 1 > $PSAMPLE_DIR/enable echo 1234 > $PSAMPLE_DIR/in_ifindex echo 4321 > $PSAMPLE_DIR/out_ifindex psample_capture grep -q -e "in-ifindex 1234" $CAPTURE_FILE check_err $? "Sampled packets reported with wrong in-ifindex" grep -q -e "out-ifindex 4321" $CAPTURE_FILE check_err $? "Sampled packets reported with wrong out-ifindex" echo 5 > $PSAMPLE_DIR/out_tc psample_capture grep -q -e "out-tc 5" $CAPTURE_FILE check_err $? "Sampled packets reported with wrong out-tc" echo $((2**16 - 1)) > $PSAMPLE_DIR/out_tc psample_capture grep -q -e "out-tc " $CAPTURE_FILE check_fail $? "Sampled packets reported with out-tc when should not" echo 1 > $PSAMPLE_DIR/out_tc echo 10000 > $PSAMPLE_DIR/out_tc_occ_max psample_capture grep -q -e "out-tc-occ " $CAPTURE_FILE check_err $? "Sampled packets not reported with out-tc-occ when should" echo 0 > $PSAMPLE_DIR/out_tc_occ_max psample_capture grep -q -e "out-tc-occ " $CAPTURE_FILE check_fail $? "Sampled packets reported with out-tc-occ when should not" echo 10000 > $PSAMPLE_DIR/latency_max psample_capture grep -q -e "latency " $CAPTURE_FILE check_err $? "Sampled packets not reported with latency when should" echo 0 > $PSAMPLE_DIR/latency_max psample_capture grep -q -e "latency " $CAPTURE_FILE check_fail $? "Sampled packets reported with latency when should not" log_test "psample metadata" echo 0 > $PSAMPLE_DIR/enable } setup_prepare() { modprobe netdevsim &> /dev/null echo "$DEV_ADDR 1" > ${NETDEVSIM_PATH}/new_device while [ ! -d $SYSFS_NET_DIR ] ; do :; done set -e ip netns add testns1 devlink dev reload $DEVLINK_DEV netns testns1 set +e } cleanup() { pre_cleanup rm -f $CAPTURE_FILE ip netns del testns1 echo "$DEV_ADDR" > ${NETDEVSIM_PATH}/del_device modprobe -r netdevsim &> /dev/null } trap cleanup EXIT setup_prepare tests_run exit $EXIT_STATUS