Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests: forwarding: test for bridge sticky flag

This test adds an fdb entry with the sticky flag and sends traffic from
a different port with the same mac as a source address expecting the entry
to not change ports if the flag is operating correctly.

Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Nikolay Aleksandrov and committed by
David S. Miller
a804e5e2 1288aa7a

+69
+69
tools/testing/selftests/net/forwarding/bridge_sticky_fdb.sh
··· 1 + #!/bin/bash 2 + # SPDX-License-Identifier: GPL-2.0 3 + 4 + ALL_TESTS="sticky" 5 + NUM_NETIFS=4 6 + TEST_MAC=de:ad:be:ef:13:37 7 + source lib.sh 8 + 9 + switch_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 + 23 + switch_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 + 33 + setup_prepare() 34 + { 35 + h1=${NETIFS[p1]} 36 + swp1=${NETIFS[p2]} 37 + h2=${NETIFS[p3]} 38 + swp2=${NETIFS[p4]} 39 + 40 + switch_create 41 + } 42 + 43 + cleanup() 44 + { 45 + pre_cleanup 46 + switch_destroy 47 + } 48 + 49 + sticky() 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 + 62 + trap cleanup EXIT 63 + 64 + setup_prepare 65 + setup_wait 66 + 67 + tests_run 68 + 69 + exit $EXIT_STATUS