tools/testing/selftests/net/forwarding/router_mpath_nh_lib.sh

Source file repositories/reference/linux-study-clean/tools/testing/selftests/net/forwarding/router_mpath_nh_lib.sh

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/net/forwarding/router_mpath_nh_lib.sh
Extension
.sh
Size
3280 bytes
Lines
133
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

# SPDX-License-Identifier: GPL-2.0

nh_stats_do_test()
{
	local what=$1; shift
	local nh1_id=$1; shift
	local nh2_id=$1; shift
	local group_id=$1; shift
	local stats_get=$1; shift
	local mz="$@"

	local dp

	RET=0

	sleep 2
	for ((dp=0; dp < 60000; dp += 10000)); do
		local dd
		local t0_rp12=$(link_stats_tx_packets_get $rp12)
		local t0_rp13=$(link_stats_tx_packets_get $rp13)
		local t0_nh1=$($stats_get $group_id $nh1_id)
		local t0_nh2=$($stats_get $group_id $nh2_id)

		ip vrf exec vrf-h1 \
			$mz -q -p 64 -d 0 -t udp \
				"sp=1024,dp=$((dp))-$((dp + 10000))"
		sleep 2

		local t1_rp12=$(link_stats_tx_packets_get $rp12)
		local t1_rp13=$(link_stats_tx_packets_get $rp13)
		local t1_nh1=$($stats_get $group_id $nh1_id)
		local t1_nh2=$($stats_get $group_id $nh2_id)

		local d_rp12=$((t1_rp12 - t0_rp12))
		local d_rp13=$((t1_rp13 - t0_rp13))
		local d_nh1=$((t1_nh1 - t0_nh1))
		local d_nh2=$((t1_nh2 - t0_nh2))

		dd=$(absval $((d_rp12 - d_nh1)))
		((dd < 10))
		check_err $? "Discrepancy between link and $stats_get: d_rp12=$d_rp12 d_nh1=$d_nh1"

		dd=$(absval $((d_rp13 - d_nh2)))
		((dd < 10))
		check_err $? "Discrepancy between link and $stats_get: d_rp13=$d_rp13 d_nh2=$d_nh2"
	done

	log_test "NH stats test $what"
}

nh_stats_test_dispatch_swhw()
{
	local what=$1; shift
	local nh1_id=$1; shift
	local nh2_id=$1; shift
	local group_id=$1; shift
	local mz="$@"

	nh_stats_do_test "$what" "$nh1_id" "$nh2_id" "$group_id" \
			 nh_stats_get "${mz[@]}"

	xfail_on_veth $rp11 \
		nh_stats_do_test "HW $what" "$nh1_id" "$nh2_id" "$group_id" \
				 nh_stats_get_hw "${mz[@]}"
}

nh_stats_test_dispatch()
{
	local nhgtype=$1; shift
	local what=$1; shift

Annotation

Implementation Notes