#!/bin/bash # SPDX-License-Identifier: GPL-2.0 lib_dir=$(dirname $0)/../../../net/forwarding ALL_TESTS="check_devlink_test check_ports_test" NUM_NETIFS=0 source $lib_dir/lib.sh BUS_ADDR=10 PORT_COUNT=4 DEV_NAME=netdevsim$BUS_ADDR SYSFS_NET_DIR=/sys/bus/netdevsim/devices/$DEV_NAME/net/ DL_HANDLE=netdevsim/$DEV_NAME NETNS_NAME=testns1 port_netdev_get() { local port_index=$1 cmd_jq "devlink -N $NETNS_NAME port show -j" \ ".[][\"$DL_HANDLE/$port_index\"].netdev" "-e" } check_ports_test() { RET=0 for i in $(seq 0 $(expr $PORT_COUNT - 1)); do netdev_name=$(port_netdev_get $i) check_err $? "Failed to get netdev name for port $DL_HANDLE/$i" ip -n $NETNS_NAME link show $netdev_name &> /dev/null check_err $? "Failed to find netdev $netdev_name" done log_test "check ports test" } check_devlink_test() { RET=0 devlink -N $NETNS_NAME dev show $DL_HANDLE &> /dev/null check_err $? "Failed to show devlink instance" log_test "check devlink test" } setup_prepare() { modprobe netdevsim ip netns add $NETNS_NAME ip netns exec $NETNS_NAME \ echo "$BUS_ADDR $PORT_COUNT" > /sys/bus/netdevsim/new_device while [ ! -d $SYSFS_NET_DIR ] ; do :; done } cleanup() { pre_cleanup echo "$BUS_ADDR" > /sys/bus/netdevsim/del_device ip netns del $NETNS_NAME modprobe -r netdevsim } trap cleanup EXIT setup_prepare tests_run exit $EXIT_STATUS