Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/net/ynl/tests/ynl_nsim_lib.sh
170958 views
1
#!/bin/bash
2
# SPDX-License-Identifier: GPL-2.0
3
# Shared netdevsim setup/cleanup for YNL C test wrappers
4
5
NSIM_ID="1337"
6
NSIM_DEV=""
7
KSFT_SKIP=4
8
9
nsim_cleanup() {
10
echo "$NSIM_ID" > /sys/bus/netdevsim/del_device 2>/dev/null || true
11
}
12
13
nsim_setup() {
14
modprobe netdevsim 2>/dev/null
15
if ! [ -f /sys/bus/netdevsim/new_device ]; then
16
echo "netdevsim module not available, skipping" >&2
17
exit "$KSFT_SKIP"
18
fi
19
20
trap nsim_cleanup EXIT
21
22
echo "$NSIM_ID 1" > /sys/bus/netdevsim/new_device
23
udevadm settle
24
25
NSIM_DEV=$(ls /sys/bus/netdevsim/devices/netdevsim${NSIM_ID}/net 2>/dev/null | head -1)
26
if [ -z "$NSIM_DEV" ]; then
27
echo "failed to find netdevsim device" >&2
28
exit 1
29
fi
30
31
ip link set dev "$NSIM_DEV" name nsim0
32
ip link set dev nsim0 up
33
ip addr add 192.168.1.1/24 dev nsim0
34
ip addr add 2001:db8::1/64 dev nsim0 nodad
35
}
36
37