-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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>
- Loading branch information
Nikolay Aleksandrov
authored and
David S. Miller
committed
Sep 28, 2018
1 parent
1288aa7
commit a804e5e
Showing
1 changed file
with
69 additions
and
0 deletions.
There are no files selected for viewing
69 changes: 69 additions & 0 deletions
69
tools/testing/selftests/net/forwarding/bridge_sticky_fdb.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
#!/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 |