ethtool-common.sh 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/bin/bash
  2. # SPDX-License-Identifier: GPL-2.0-only
  3. NSIM_ID=$((RANDOM % 1024))
  4. NSIM_DEV_SYS=/sys/bus/netdevsim/devices/netdevsim$NSIM_ID
  5. NSIM_DEV_DFS=/sys/kernel/debug/netdevsim/netdevsim$NSIM_ID/ports/0
  6. NSIM_NETDEV=
  7. num_passes=0
  8. num_errors=0
  9. function cleanup_nsim {
  10. if [ -e $NSIM_DEV_SYS ]; then
  11. echo $NSIM_ID > /sys/bus/netdevsim/del_device
  12. fi
  13. }
  14. function cleanup {
  15. cleanup_nsim
  16. }
  17. trap cleanup EXIT
  18. function check {
  19. local code=$1
  20. local str=$2
  21. local exp_str=$3
  22. local exp_fail=$4
  23. [ -z "$exp_fail" ] && cop="-ne" || cop="-eq"
  24. if [ $code $cop 0 ]; then
  25. ((num_errors++))
  26. return
  27. fi
  28. if [ "$str" != "$exp_str" ]; then
  29. echo -e "Expected: '$exp_str', got '$str'"
  30. ((num_errors++))
  31. return
  32. fi
  33. ((num_passes++))
  34. }
  35. function make_netdev {
  36. # Make a netdevsim
  37. old_netdevs=$(ls /sys/class/net)
  38. if ! $(lsmod | grep -q netdevsim); then
  39. modprobe netdevsim
  40. fi
  41. echo $NSIM_ID $@ > /sys/bus/netdevsim/new_device
  42. udevadm settle
  43. # get new device name
  44. ls /sys/bus/netdevsim/devices/netdevsim${NSIM_ID}/net/
  45. }