0001
0002
0003
0004 lib_dir=$(dirname $0)/../../../net/forwarding
0005
0006 ALL_TESTS="check_devlink_test check_ports_test"
0007 NUM_NETIFS=0
0008 source $lib_dir/lib.sh
0009
0010 BUS_ADDR=10
0011 PORT_COUNT=4
0012 DEV_NAME=netdevsim$BUS_ADDR
0013 SYSFS_NET_DIR=/sys/bus/netdevsim/devices/$DEV_NAME/net/
0014 DL_HANDLE=netdevsim/$DEV_NAME
0015 NETNS_NAME=testns1
0016
0017 port_netdev_get()
0018 {
0019 local port_index=$1
0020
0021 cmd_jq "devlink -N $NETNS_NAME port show -j" \
0022 ".[][\"$DL_HANDLE/$port_index\"].netdev" "-e"
0023 }
0024
0025 check_ports_test()
0026 {
0027 RET=0
0028
0029 for i in $(seq 0 $(expr $PORT_COUNT - 1)); do
0030 netdev_name=$(port_netdev_get $i)
0031 check_err $? "Failed to get netdev name for port $DL_HANDLE/$i"
0032 ip -n $NETNS_NAME link show $netdev_name &> /dev/null
0033 check_err $? "Failed to find netdev $netdev_name"
0034 done
0035
0036 log_test "check ports test"
0037 }
0038
0039 check_devlink_test()
0040 {
0041 RET=0
0042
0043 devlink -N $NETNS_NAME dev show $DL_HANDLE &> /dev/null
0044 check_err $? "Failed to show devlink instance"
0045
0046 log_test "check devlink test"
0047 }
0048
0049 setup_prepare()
0050 {
0051 modprobe netdevsim
0052 ip netns add $NETNS_NAME
0053 ip netns exec $NETNS_NAME \
0054 echo "$BUS_ADDR $PORT_COUNT" > /sys/bus/netdevsim/new_device
0055 while [ ! -d $SYSFS_NET_DIR ] ; do :; done
0056 }
0057
0058 cleanup()
0059 {
0060 pre_cleanup
0061 echo "$BUS_ADDR" > /sys/bus/netdevsim/del_device
0062 ip netns del $NETNS_NAME
0063 modprobe -r netdevsim
0064 }
0065
0066 trap cleanup EXIT
0067
0068 setup_prepare
0069
0070 tests_run
0071
0072 exit $EXIT_STATUS