162306a36Sopenharmony_ci#!/bin/bash 262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 362306a36Sopenharmony_ci 462306a36Sopenharmony_ciNSIM_ID=$((RANDOM % 1024)) 562306a36Sopenharmony_ciNSIM_DEV_SYS=/sys/bus/netdevsim/devices/netdevsim$NSIM_ID 662306a36Sopenharmony_ciNSIM_DEV_DFS=/sys/kernel/debug/netdevsim/netdevsim$NSIM_ID/ports/0 762306a36Sopenharmony_ciNSIM_NETDEV= 862306a36Sopenharmony_cinum_passes=0 962306a36Sopenharmony_cinum_errors=0 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_cifunction cleanup_nsim { 1262306a36Sopenharmony_ci if [ -e $NSIM_DEV_SYS ]; then 1362306a36Sopenharmony_ci echo $NSIM_ID > /sys/bus/netdevsim/del_device 1462306a36Sopenharmony_ci fi 1562306a36Sopenharmony_ci} 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_cifunction cleanup { 1862306a36Sopenharmony_ci cleanup_nsim 1962306a36Sopenharmony_ci} 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_citrap cleanup EXIT 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_cifunction check { 2462306a36Sopenharmony_ci local code=$1 2562306a36Sopenharmony_ci local str=$2 2662306a36Sopenharmony_ci local exp_str=$3 2762306a36Sopenharmony_ci local exp_fail=$4 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci [ -z "$exp_fail" ] && cop="-ne" || cop="-eq" 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci if [ $code $cop 0 ]; then 3262306a36Sopenharmony_ci ((num_errors++)) 3362306a36Sopenharmony_ci return 3462306a36Sopenharmony_ci fi 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci if [ "$str" != "$exp_str" ]; then 3762306a36Sopenharmony_ci echo -e "Expected: '$exp_str', got '$str'" 3862306a36Sopenharmony_ci ((num_errors++)) 3962306a36Sopenharmony_ci return 4062306a36Sopenharmony_ci fi 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci ((num_passes++)) 4362306a36Sopenharmony_ci} 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_cifunction make_netdev { 4662306a36Sopenharmony_ci # Make a netdevsim 4762306a36Sopenharmony_ci old_netdevs=$(ls /sys/class/net) 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci if ! $(lsmod | grep -q netdevsim); then 5062306a36Sopenharmony_ci modprobe netdevsim 5162306a36Sopenharmony_ci fi 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci echo $NSIM_ID $@ > /sys/bus/netdevsim/new_device 5462306a36Sopenharmony_ci # get new device name 5562306a36Sopenharmony_ci ls /sys/bus/netdevsim/devices/netdevsim${NSIM_ID}/net/ 5662306a36Sopenharmony_ci} 57