tools/testing/selftests/drivers/net/hw/ethtool_std_stats.sh

Source file repositories/reference/linux-study-clean/tools/testing/selftests/drivers/net/hw/ethtool_std_stats.sh

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/drivers/net/hw/ethtool_std_stats.sh
Extension
.sh
Size
5629 bytes
Lines
207
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: tools
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
#shellcheck disable=SC2034 # SC does not see the global variables
#shellcheck disable=SC2317,SC2329 # unused functions

ALL_TESTS="
	test_eth_ctrl_stats
	test_eth_mac_stats
	test_pause_stats
"
: "${DRIVER_TEST_CONFORMANT:=yes}"
STABLE_MAC_ADDRS=yes
NUM_NETIFS=2
lib_dir=$(dirname "$0")
# shellcheck source=./../../../net/forwarding/lib.sh
source "$lib_dir"/../../../net/forwarding/lib.sh
# shellcheck source=./../../../kselftest/ktap_helpers.sh
source "$lib_dir"/../../../kselftest/ktap_helpers.sh

UINT32_MAX=$((2**32 - 1))
SUBTESTS=0
TEST_NAME=$(basename "$0" .sh)

traffic_test()
{
	local iface=$1; shift
	local neigh=$1; shift
	local num_tx=$1; shift
	local pkt_format="$1"; shift
	local -a counters=("$@")
	local int grp cnt target exact_check
	local before after delta
	local num_rx=$((num_tx * 2))
	local xfail_message
	local src="aggregate"
	local i

	for i in "${!counters[@]}"; do
		read -r int grp cnt target exact_check xfail_message \
			<<< "${counters[$i]}"

		before[i]=$(ethtool_std_stats_get "$int" "$grp" "$cnt" "$src")
	done

	# shellcheck disable=SC2086 # needs split options
	run_on "$iface" "$MZ" "$iface" -q -c "$num_tx" $pkt_format

	# shellcheck disable=SC2086 # needs split options
	run_on "$neigh" "$MZ" "$neigh" -q -c "$num_rx" $pkt_format

	for i in "${!counters[@]}"; do
		read -r int grp cnt target exact_check xfail_message \
			<<< "${counters[$i]}"

		after[i]=$(ethtool_std_stats_get "$int" "$grp" "$cnt" "$src")
		if [[ "${after[$i]}" == "null" ]]; then
			ktap_test_skip "$TEST_NAME.$grp-$cnt"
			continue;
		fi

		delta=$((after[i] - before[i]))

		if [ "$exact_check" -ne 0 ]; then
			[ "$delta" -eq "$target" ]
		else
			[ "$delta" -ge "$target" ] && \
			[ "$delta" -le "$UINT32_MAX" ]
		fi
		err="$?"

Annotation

Implementation Notes