__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
#!/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
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| Makefile | File | 396 B | 0644 |
|
| devlink.sh | File | 19.29 KB | 0755 |
|
| devlink_in_netns.sh | File | 1.34 KB | 0755 |
|
| devlink_trap.sh | File | 12.62 KB | 0755 |
|
| ethtool-coalesce.sh | File | 3.19 KB | 0755 |
|
| ethtool-common.sh | File | 1.06 KB | 0644 |
|
| ethtool-features.sh | File | 665 B | 0644 |
|
| ethtool-fec.sh | File | 3.1 KB | 0755 |
|
| ethtool-pause.sh | File | 1.27 KB | 0755 |
|
| ethtool-ring.sh | File | 1.79 KB | 0755 |
|
| fib.sh | File | 7.54 KB | 0755 |
|
| fib_notifications.sh | File | 10.13 KB | 0755 |
|
| hw_stats_l3.sh | File | 9.16 KB | 0755 |
|
| macsec-offload.sh | File | 2.84 KB | 0755 |
|
| nexthop.sh | File | 26.37 KB | 0755 |
|
| peer.sh | File | 3.26 KB | 0755 |
|
| psample.sh | File | 4.02 KB | 0755 |
|
| tc-mq-visibility.sh | File | 1.64 KB | 0755 |
|
| udp_tunnel_nic.sh | File | 20.27 KB | 0755 |
|