bridge_sticky_fdb.sh 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/bin/bash
  2. # SPDX-License-Identifier: GPL-2.0
  3. ALL_TESTS="sticky"
  4. NUM_NETIFS=4
  5. TEST_MAC=de:ad:be:ef:13:37
  6. source lib.sh
  7. switch_create()
  8. {
  9. ip link add dev br0 type bridge
  10. ip link set dev $swp1 master br0
  11. ip link set dev $swp2 master br0
  12. ip link set dev br0 up
  13. ip link set dev $h1 up
  14. ip link set dev $swp1 up
  15. ip link set dev $h2 up
  16. ip link set dev $swp2 up
  17. }
  18. switch_destroy()
  19. {
  20. ip link set dev $swp2 down
  21. ip link set dev $h2 down
  22. ip link set dev $swp1 down
  23. ip link set dev $h1 down
  24. ip link del dev br0
  25. }
  26. setup_prepare()
  27. {
  28. h1=${NETIFS[p1]}
  29. swp1=${NETIFS[p2]}
  30. h2=${NETIFS[p3]}
  31. swp2=${NETIFS[p4]}
  32. switch_create
  33. }
  34. cleanup()
  35. {
  36. pre_cleanup
  37. switch_destroy
  38. }
  39. sticky()
  40. {
  41. bridge fdb add $TEST_MAC dev $swp1 master static sticky
  42. check_err $? "Could not add fdb entry"
  43. bridge fdb del $TEST_MAC dev $swp1 vlan 1 master static sticky
  44. $MZ $h2 -c 1 -a $TEST_MAC -t arp "request" -q
  45. bridge -j fdb show br br0 brport $swp1\
  46. | jq -e ".[] | select(.mac == \"$TEST_MAC\")" &> /dev/null
  47. check_err $? "Did not find FDB record when should"
  48. log_test "Sticky fdb entry"
  49. }
  50. trap cleanup EXIT
  51. setup_prepare
  52. setup_wait
  53. tests_run
  54. exit $EXIT_STATUS