tools/testing/selftests/drivers/net/netdevsim/devlink.sh

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

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/drivers/net/netdevsim/devlink.sh
Extension
.sh
Size
25782 bytes
Lines
957
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

lib_dir=$(dirname $0)/../../../net/forwarding

ALL_TESTS="fw_flash_test params_test  \
	   params_default_test regions_test reload_test \
	   netns_reload_test resource_test resource_dump_test \
	   port_resource_doit_test dev_info_test \
	   empty_reporter_test dummy_reporter_test rate_test"
NUM_NETIFS=0
source $lib_dir/lib.sh

BUS_ADDR=10
PORT_COUNT=4
VF_COUNT=4
DEV_NAME=netdevsim$BUS_ADDR
SYSFS_NET_DIR=/sys/bus/netdevsim/devices/$DEV_NAME/net/
DEBUGFS_DIR=/sys/kernel/debug/netdevsim/$DEV_NAME/
DL_HANDLE=netdevsim/$DEV_NAME

wait_for_devlink()
{
	"$@" | grep -q $DL_HANDLE
}

devlink_wait()
{
	local timeout=$1

	busywait "$timeout" wait_for_devlink devlink dev
}

fw_flash_test()
{
	DUMMYFILE=$(find /lib/firmware -type f -printf '%P\n' | head -1)
	RET=0

	if [ -z "$DUMMYFILE" ]
	then
		echo "SKIP: unable to find suitable dummy firmware file"
		return
	fi

	echo "10"> $DEBUGFS_DIR/fw_update_flash_chunk_time_ms

	devlink dev flash $DL_HANDLE file $DUMMYFILE
	check_err $? "Failed to flash with status updates on"

	devlink dev flash $DL_HANDLE file $DUMMYFILE component fw.mgmt
	check_err $? "Failed to flash with component attribute"

	devlink dev flash $DL_HANDLE file $DUMMYFILE overwrite settings
	check_fail $? "Flash with overwrite settings should be rejected"

	echo "1"> $DEBUGFS_DIR/fw_update_overwrite_mask
	check_err $? "Failed to change allowed overwrite mask"

	devlink dev flash $DL_HANDLE file $DUMMYFILE overwrite settings
	check_err $? "Failed to flash with settings overwrite enabled"

	devlink dev flash $DL_HANDLE file $DUMMYFILE overwrite identifiers
	check_fail $? "Flash with overwrite settings should be identifiers"

	echo "3"> $DEBUGFS_DIR/fw_update_overwrite_mask
	check_err $? "Failed to change allowed overwrite mask"

	devlink dev flash $DL_HANDLE file $DUMMYFILE overwrite identifiers overwrite settings
	check_err $? "Failed to flash with settings and identifiers overwrite enabled"

Annotation

Implementation Notes