1fbb8531eSAntonio Cardace#!/bin/bash 2fbb8531eSAntonio Cardace# SPDX-License-Identifier: GPL-2.0-only 3fbb8531eSAntonio Cardace 4fbb8531eSAntonio CardaceNSIM_ID=$((RANDOM % 1024)) 5fbb8531eSAntonio CardaceNSIM_DEV_SYS=/sys/bus/netdevsim/devices/netdevsim$NSIM_ID 6fbb8531eSAntonio CardaceNSIM_DEV_DFS=/sys/kernel/debug/netdevsim/netdevsim$NSIM_ID/ports/0 7fbb8531eSAntonio CardaceNSIM_NETDEV= 8fbb8531eSAntonio Cardacenum_passes=0 9fbb8531eSAntonio Cardacenum_errors=0 10fbb8531eSAntonio Cardace 11fbb8531eSAntonio Cardacefunction cleanup_nsim { 12fbb8531eSAntonio Cardace if [ -e $NSIM_DEV_SYS ]; then 13fbb8531eSAntonio Cardace echo $NSIM_ID > /sys/bus/netdevsim/del_device 14fbb8531eSAntonio Cardace fi 15fbb8531eSAntonio Cardace} 16fbb8531eSAntonio Cardace 17fbb8531eSAntonio Cardacefunction cleanup { 18fbb8531eSAntonio Cardace cleanup_nsim 19fbb8531eSAntonio Cardace} 20fbb8531eSAntonio Cardace 21fbb8531eSAntonio Cardacetrap cleanup EXIT 22fbb8531eSAntonio Cardace 23fbb8531eSAntonio Cardacefunction check { 24fbb8531eSAntonio Cardace local code=$1 25fbb8531eSAntonio Cardace local str=$2 26fbb8531eSAntonio Cardace local exp_str=$3 271da07e5dSJakub Kicinski local exp_fail=$4 28fbb8531eSAntonio Cardace 291da07e5dSJakub Kicinski [ -z "$exp_fail" ] && cop="-ne" || cop="-eq" 301da07e5dSJakub Kicinski 311da07e5dSJakub Kicinski if [ $code $cop 0 ]; then 32fbb8531eSAntonio Cardace ((num_errors++)) 33fbb8531eSAntonio Cardace return 34fbb8531eSAntonio Cardace fi 35fbb8531eSAntonio Cardace 36fbb8531eSAntonio Cardace if [ "$str" != "$exp_str" ]; then 37fbb8531eSAntonio Cardace echo -e "Expected: '$exp_str', got '$str'" 38fbb8531eSAntonio Cardace ((num_errors++)) 39fbb8531eSAntonio Cardace return 40fbb8531eSAntonio Cardace fi 41fbb8531eSAntonio Cardace 42fbb8531eSAntonio Cardace ((num_passes++)) 43fbb8531eSAntonio Cardace} 44fbb8531eSAntonio Cardace 45fbb8531eSAntonio Cardacefunction make_netdev { 46fbb8531eSAntonio Cardace # Make a netdevsim 47fbb8531eSAntonio Cardace old_netdevs=$(ls /sys/class/net) 48fbb8531eSAntonio Cardace 49fbb8531eSAntonio Cardace if ! $(lsmod | grep -q netdevsim); then 50fbb8531eSAntonio Cardace modprobe netdevsim 51fbb8531eSAntonio Cardace fi 52fbb8531eSAntonio Cardace 53*2d6a5899SJakub Kicinski echo $NSIM_ID $@ > /sys/bus/netdevsim/new_device 549e48ee80SAntonio Cardace # get new device name 559e48ee80SAntonio Cardace ls /sys/bus/netdevsim/devices/netdevsim${NSIM_ID}/net/ 56fbb8531eSAntonio Cardace} 57