__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
#!/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

Filemanager

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
Filemanager