Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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