Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0-only
3
4NSIM_ID=$((RANDOM % 1024))
5NSIM_DEV_SYS=/sys/bus/netdevsim/devices/netdevsim$NSIM_ID
6NSIM_DEV_DFS=/sys/kernel/debug/netdevsim/netdevsim$NSIM_ID/ports/0
7NSIM_NETDEV=
8num_passes=0
9num_errors=0
10
11function cleanup_nsim {
12 if [ -e $NSIM_DEV_SYS ]; then
13 echo $NSIM_ID > /sys/bus/netdevsim/del_device
14 fi
15}
16
17function cleanup {
18 cleanup_nsim
19}
20
21trap cleanup EXIT
22
23function 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
45function 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}