Back to home page

OSCL-LXR

 
 

    


0001 #!/bin/bash
0002 # SPDX-License-Identifier: GPL-2.0
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