70 lines
1.1 KiB
Bash
70 lines
1.1 KiB
Bash
|
#!/bin/bash
|
||
|
# SPDX-License-Identifier: GPL-2.0
|
||
|
|
||
|
ALL_TESTS="sticky"
|
||
|
NUM_NETIFS=4
|
||
|
TEST_MAC=de:ad:be:ef:13:37
|
||
|
source lib.sh
|
||
|
|
||
|
switch_create()
|
||
|
{
|
||
|
ip link add dev br0 type bridge
|
||
|
|
||
|
ip link set dev $swp1 master br0
|
||
|
ip link set dev $swp2 master br0
|
||
|
|
||
|
ip link set dev br0 up
|
||
|
ip link set dev $h1 up
|
||
|
ip link set dev $swp1 up
|
||
|
ip link set dev $h2 up
|
||
|
ip link set dev $swp2 up
|
||
|
}
|
||
|
|
||
|
switch_destroy()
|
||
|
{
|
||
|
ip link set dev $swp2 down
|
||
|
ip link set dev $h2 down
|
||
|
ip link set dev $swp1 down
|
||
|
ip link set dev $h1 down
|
||
|
|
||
|
ip link del dev br0
|
||
|
}
|
||
|
|
||
|
setup_prepare()
|
||
|
{
|
||
|
h1=${NETIFS[p1]}
|
||
|
swp1=${NETIFS[p2]}
|
||
|
h2=${NETIFS[p3]}
|
||
|
swp2=${NETIFS[p4]}
|
||
|
|
||
|
switch_create
|
||
|
}
|
||
|
|
||
|
cleanup()
|
||
|
{
|
||
|
pre_cleanup
|
||
|
switch_destroy
|
||
|
}
|
||
|
|
||
|
sticky()
|
||
|
{
|
||
|
bridge fdb add $TEST_MAC dev $swp1 master static sticky
|
||
|
check_err $? "Could not add fdb entry"
|
||
|
bridge fdb del $TEST_MAC dev $swp1 vlan 1 master static sticky
|
||
|
$MZ $h2 -c 1 -a $TEST_MAC -t arp "request" -q
|
||
|
bridge -j fdb show br br0 brport $swp1\
|
||
|
| jq -e ".[] | select(.mac == \"$TEST_MAC\")" &> /dev/null
|
||
|
check_err $? "Did not find FDB record when should"
|
||
|
|
||
|
log_test "Sticky fdb entry"
|
||
|
}
|
||
|
|
||
|
trap cleanup EXIT
|
||
|
|
||
|
setup_prepare
|
||
|
setup_wait
|
||
|
|
||
|
tests_run
|
||
|
|
||
|
exit $EXIT_STATUS
|