Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/testing/selftests/drivers/net/netdevsim/ethtool-common.sh
26299 views
1
#!/bin/bash
2
# SPDX-License-Identifier: GPL-2.0-only
3
4
NSIM_ID=$((RANDOM % 1024))
5
NSIM_DEV_SYS=/sys/bus/netdevsim/devices/netdevsim$NSIM_ID
6
NSIM_DEV_DFS=/sys/kernel/debug/netdevsim/netdevsim$NSIM_ID/ports/0
7
NSIM_NETDEV=
8
num_passes=0
9
num_errors=0
10
11
function cleanup_nsim {
12
if [ -e $NSIM_DEV_SYS ]; then
13
echo $NSIM_ID > /sys/bus/netdevsim/del_device
14
fi
15
}
16
17
function cleanup {
18
cleanup_nsim
19
}
20
21
trap cleanup EXIT
22
23
function check {
24
local code=$1
25
local str=$2
26
local exp_str=$3
27
local exp_fail=$4
28
29
[ -z "$exp_fail" ] && cop="-ne" || cop="-eq"
30
31
if [ $code $cop 0 ]; then
32
((num_errors++))
33
return
34
fi
35
36
if [ "$str" != "$exp_str" ]; then
37
echo -e "Expected: '$exp_str', got '$str'"
38
((num_errors++))
39
return
40
fi
41
42
((num_passes++))
43
}
44
45
function make_netdev {
46
# Make a netdevsim
47
old_netdevs=$(ls /sys/class/net)
48
49
if ! $(lsmod | grep -q netdevsim); then
50
modprobe netdevsim
51
fi
52
53
echo $NSIM_ID $@ > /sys/bus/netdevsim/new_device
54
udevadm settle
55
# get new device name
56
ls /sys/bus/netdevsim/devices/netdevsim${NSIM_ID}/net/
57
}
58
59