57 lines · 1.1 KB · Shell
RawDownload
#!/bin/bash# SPDX-License-Identifier: GPL-2.0-only NSIM_ID=$((RANDOM % 1024))NSIM_DEV_SYS=/sys/bus/netdevsim/devices/netdevsim$NSIM_IDNSIM_DEV_DFS=/sys/kernel/debug/netdevsim/netdevsim$NSIM_ID/ports/0NSIM_NETDEV=num_passes=0num_errors=0 function cleanup_nsim {    if [ -e $NSIM_DEV_SYS ]; then	echo $NSIM_ID > /sys/bus/netdevsim/del_device    fi} function cleanup {    cleanup_nsim} trap cleanup EXIT function check {    local code=$1    local str=$2    local exp_str=$3    local exp_fail=$4     [ -z "$exp_fail" ] && cop="-ne" || cop="-eq"     if [ $code $cop 0 ]; then	((num_errors++))	return    fi     if [ "$str" != "$exp_str"  ]; then	echo -e "Expected: '$exp_str', got '$str'"	((num_errors++))	return    fi     ((num_passes++))} function make_netdev {    # Make a netdevsim    old_netdevs=$(ls /sys/class/net)     if ! $(lsmod | grep -q netdevsim); then	modprobe netdevsim    fi     echo $NSIM_ID $@ > /sys/bus/netdevsim/new_device    udevadm settle    # get new device name    ls /sys/bus/netdevsim/devices/netdevsim${NSIM_ID}/net/}