1*7a95e525SJakub Kicinski#!/bin/bash 2*7a95e525SJakub Kicinski# SPDX-License-Identifier: GPL-2.0 3*7a95e525SJakub Kicinski# Shared netdevsim setup/cleanup for YNL C test wrappers 4*7a95e525SJakub Kicinski 5*7a95e525SJakub KicinskiNSIM_ID="1337" 6*7a95e525SJakub KicinskiNSIM_DEV="" 7*7a95e525SJakub KicinskiKSFT_SKIP=4 8*7a95e525SJakub Kicinski 9*7a95e525SJakub Kicinskinsim_cleanup() { 10*7a95e525SJakub Kicinski echo "$NSIM_ID" > /sys/bus/netdevsim/del_device 2>/dev/null || true 11*7a95e525SJakub Kicinski} 12*7a95e525SJakub Kicinski 13*7a95e525SJakub Kicinskinsim_setup() { 14*7a95e525SJakub Kicinski modprobe netdevsim 2>/dev/null 15*7a95e525SJakub Kicinski if ! [ -f /sys/bus/netdevsim/new_device ]; then 16*7a95e525SJakub Kicinski echo "netdevsim module not available, skipping" >&2 17*7a95e525SJakub Kicinski exit "$KSFT_SKIP" 18*7a95e525SJakub Kicinski fi 19*7a95e525SJakub Kicinski 20*7a95e525SJakub Kicinski trap nsim_cleanup EXIT 21*7a95e525SJakub Kicinski 22*7a95e525SJakub Kicinski echo "$NSIM_ID 1" > /sys/bus/netdevsim/new_device 23*7a95e525SJakub Kicinski udevadm settle 24*7a95e525SJakub Kicinski 25*7a95e525SJakub Kicinski NSIM_DEV=$(ls /sys/bus/netdevsim/devices/netdevsim${NSIM_ID}/net 2>/dev/null | head -1) 26*7a95e525SJakub Kicinski if [ -z "$NSIM_DEV" ]; then 27*7a95e525SJakub Kicinski echo "failed to find netdevsim device" >&2 28*7a95e525SJakub Kicinski exit 1 29*7a95e525SJakub Kicinski fi 30*7a95e525SJakub Kicinski 31*7a95e525SJakub Kicinski ip link set dev "$NSIM_DEV" name nsim0 32*7a95e525SJakub Kicinski ip link set dev nsim0 up 33*7a95e525SJakub Kicinski ip addr add 192.168.1.1/24 dev nsim0 34*7a95e525SJakub Kicinski ip addr add 2001:db8::1/64 dev nsim0 nodad 35*7a95e525SJakub Kicinski} 36