Back to home page

OSCL-LXR

 
 

    


0001 #!/bin/bash
0002 # SPDX-License-Identifier: GPL-2.0-only
0003 
0004 NSIM_ID=$((RANDOM % 1024))
0005 NSIM_DEV_SYS=/sys/bus/netdevsim/devices/netdevsim$NSIM_ID
0006 NSIM_DEV_DFS=/sys/kernel/debug/netdevsim/netdevsim$NSIM_ID/ports/0
0007 NSIM_NETDEV=
0008 num_passes=0
0009 num_errors=0
0010 
0011 function cleanup_nsim {
0012     if [ -e $NSIM_DEV_SYS ]; then
0013         echo $NSIM_ID > /sys/bus/netdevsim/del_device
0014     fi
0015 }
0016 
0017 function cleanup {
0018     cleanup_nsim
0019 }
0020 
0021 trap cleanup EXIT
0022 
0023 function check {
0024     local code=$1
0025     local str=$2
0026     local exp_str=$3
0027     local exp_fail=$4
0028 
0029     [ -z "$exp_fail" ] && cop="-ne" || cop="-eq"
0030 
0031     if [ $code $cop 0 ]; then
0032         ((num_errors++))
0033         return
0034     fi
0035 
0036     if [ "$str" != "$exp_str"  ]; then
0037         echo -e "Expected: '$exp_str', got '$str'"
0038         ((num_errors++))
0039         return
0040     fi
0041 
0042     ((num_passes++))
0043 }
0044 
0045 function make_netdev {
0046     # Make a netdevsim
0047     old_netdevs=$(ls /sys/class/net)
0048 
0049     if ! $(lsmod | grep -q netdevsim); then
0050         modprobe netdevsim
0051     fi
0052 
0053     echo $NSIM_ID $@ > /sys/bus/netdevsim/new_device
0054     # get new device name
0055     ls /sys/bus/netdevsim/devices/netdevsim${NSIM_ID}/net/
0056 }