0001
0002
0003
0004 ALL_TESTS="sticky"
0005 NUM_NETIFS=4
0006 TEST_MAC=de:ad:be:ef:13:37
0007 source lib.sh
0008
0009 switch_create()
0010 {
0011 ip link add dev br0 type bridge
0012
0013 ip link set dev $swp1 master br0
0014 ip link set dev $swp2 master br0
0015
0016 ip link set dev br0 up
0017 ip link set dev $h1 up
0018 ip link set dev $swp1 up
0019 ip link set dev $h2 up
0020 ip link set dev $swp2 up
0021 }
0022
0023 switch_destroy()
0024 {
0025 ip link set dev $swp2 down
0026 ip link set dev $h2 down
0027 ip link set dev $swp1 down
0028 ip link set dev $h1 down
0029
0030 ip link del dev br0
0031 }
0032
0033 setup_prepare()
0034 {
0035 h1=${NETIFS[p1]}
0036 swp1=${NETIFS[p2]}
0037 h2=${NETIFS[p3]}
0038 swp2=${NETIFS[p4]}
0039
0040 switch_create
0041 }
0042
0043 cleanup()
0044 {
0045 pre_cleanup
0046 switch_destroy
0047 }
0048
0049 sticky()
0050 {
0051 bridge fdb add $TEST_MAC dev $swp1 master static sticky
0052 check_err $? "Could not add fdb entry"
0053 bridge fdb del $TEST_MAC dev $swp1 vlan 1 master static sticky
0054 $MZ $h2 -c 1 -a $TEST_MAC -t arp "request" -q
0055 bridge -j fdb show br br0 brport $swp1\
0056 | jq -e ".[] | select(.mac == \"$TEST_MAC\")" &> /dev/null
0057 check_err $? "Did not find FDB record when should"
0058
0059 log_test "Sticky fdb entry"
0060 }
0061
0062 trap cleanup EXIT
0063
0064 setup_prepare
0065 setup_wait
0066
0067 tests_run
0068
0069 exit $EXIT_STATUS