mpls01.sh 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/bin/sh
  2. # SPDX-License-Identifier: GPL-2.0-or-later
  3. # Copyright (c) 2018 Oracle and/or its affiliates. All Rights Reserved.
  4. TST_SETUP="setup"
  5. TST_TESTFUNC="test"
  6. TST_CLEANUP="cleanup"
  7. TST_CNT=3
  8. TST_MIN_KVER="4.1"
  9. TST_NEEDS_TMPDIR=1
  10. TST_NEEDS_ROOT=1
  11. TST_NEEDS_DRIVERS="mpls_router"
  12. TST_NEEDS_CMDS="sysctl modprobe"
  13. . tst_net.sh
  14. cleanup()
  15. {
  16. ip -f mpls route flush dev lo > /dev/null 2>&1
  17. ip -f mpls route flush dev $(tst_iface) > /dev/null 2>&1
  18. }
  19. setup()
  20. {
  21. ROD modprobe mpls_router
  22. }
  23. test1()
  24. {
  25. ROD sysctl -q net.mpls.platform_labels=0xfffff
  26. ROD ip -f mpls route add 0xffffe dev lo
  27. ROD ip -f mpls route show \> /dev/null
  28. ROD ip -f mpls route del 0xffffe dev lo
  29. tst_res TPASS "added label 0xffffe to lo dev"
  30. }
  31. test2()
  32. {
  33. ROD sysctl -q net.mpls.platform_labels=0xffffe
  34. ip -f mpls route add 0xffffe dev lo > /dev/null 2>&1
  35. if [ $? -eq 0 ]; then
  36. tst_res TFAIL "can add label that is >= platform_labels"
  37. return
  38. fi
  39. tst_res TPASS "can't add label >= platform_lables"
  40. }
  41. test3()
  42. {
  43. local start=16
  44. local end=$((start + NS_TIMES))
  45. ROD sysctl -q net.mpls.platform_labels=$((end + 1))
  46. tst_res TINFO "creating mpls routes with labels from $start..$end"
  47. for l in $(seq $start $end); do
  48. ROD ip -f mpls route add $l dev $(tst_iface)
  49. done
  50. tst_res TINFO "listing created routes"
  51. ROD ip -f mpls route show \> /dev/null
  52. tst_res TINFO "removing the routes"
  53. for l in $(seq $start $end); do
  54. ROD ip -f mpls route del $l dev $(tst_iface)
  55. done
  56. tst_res TPASS "created and removed mpls routes"
  57. }
  58. tst_run