if-route-adddel.sh 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/bin/sh
  2. # SPDX-License-Identifier: GPL-2.0-or-later
  3. # Copyright (c) 2017-2018 Petr Vorel <pvorel@suse.cz>
  4. # Copyright (c) 2015 Oracle and/or its affiliates. All Rights Reserved.
  5. # Copyright (c) International Business Machines Corp., 2005
  6. # Author: Mitsuru Chinen <mitch@jp.ibm.com>
  7. IF_CMD='route'
  8. . if-lib.sh
  9. CHECK_INTERVAL=${CHECK_INTERVAL:-$(($NS_TIMES / 20))}
  10. test_body()
  11. {
  12. local cmd="$CMD"
  13. local iface=$(tst_iface)
  14. local inet="inet$TST_IPV6"
  15. local new_rt=
  16. local opt_rt=
  17. if [ "$TST_IPV6" ]; then
  18. new_rt="$(TST_IPV6=6 tst_ipaddr_un 0)"
  19. opt_rt="/64"
  20. else
  21. new_rt="$(tst_ipaddr_un 23)"
  22. if [ "$cmd" = "ip" ]; then
  23. opt_rt='/24'
  24. fi
  25. fi
  26. tst_res TINFO "'$cmd' add/del ${new_rt}${opt_rt} $NS_TIMES times"
  27. if ! restore_ipaddr; then
  28. tst_res TBROK "Failed to set default IP addresses"
  29. return
  30. fi
  31. local cnt=1
  32. while [ $cnt -le $NS_TIMES ]; do
  33. make_background_tcp_traffic
  34. case $cmd in
  35. route) route -A $inet add ${new_rt}${opt_rt} dev $iface ;;
  36. ip) ip route add ${new_rt}${opt_rt} dev $iface ;;
  37. esac
  38. if [ $? -ne 0 ]; then
  39. tst_res TFAIL "Can't add route $new_rt to $iface"
  40. return
  41. fi
  42. case $cmd in
  43. route) route -A $inet del ${new_rt}${opt_rt} dev $iface ;;
  44. ip) ip route del ${new_rt}${opt_rt} dev $iface ;;
  45. esac
  46. if [ $? -ne 0 ]; then
  47. tst_res TFAIL "Can't del route $new_rt from $iface"
  48. return
  49. fi
  50. check_connectivity_interval $cnt || return
  51. cnt=$(($cnt + 1))
  52. done
  53. tst_res TPASS "Test is finished correctly"
  54. }
  55. tst_run