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