xref: /linux/tools/testing/selftests/net/fdb_notify.sh (revision 946661e3bef8efa11ba8079d4ebafe6fc3b0aaad)
115880becSPetr Machata#!/bin/bash
215880becSPetr Machata# SPDX-License-Identifier: GPL-2.0
315880becSPetr Machata
415880becSPetr Machatasource lib.sh
515880becSPetr Machata
615880becSPetr MachataALL_TESTS="
715880becSPetr Machata	test_dup_bridge
815880becSPetr Machata	test_dup_vxlan_self
915880becSPetr Machata	test_dup_vxlan_master
1015880becSPetr Machata	test_dup_macvlan_self
1115880becSPetr Machata	test_dup_macvlan_master
1215880becSPetr Machata"
1315880becSPetr Machata
1415880becSPetr Machatado_test_dup()
1515880becSPetr Machata{
1615880becSPetr Machata	local op=$1; shift
1715880becSPetr Machata	local what=$1; shift
1815880becSPetr Machata	local tmpf
1915880becSPetr Machata
2015880becSPetr Machata	RET=0
2115880becSPetr Machata
2215880becSPetr Machata	tmpf=$(mktemp)
2315880becSPetr Machata	defer rm "$tmpf"
2415880becSPetr Machata
2515880becSPetr Machata	defer_scope_push
2615880becSPetr Machata		bridge monitor fdb &> "$tmpf" &
2715880becSPetr Machata		defer kill_process $!
2815880becSPetr Machata
2915880becSPetr Machata		sleep 0.5
3015880becSPetr Machata		bridge fdb "$op" 00:11:22:33:44:55 vlan 1 "$@"
3115880becSPetr Machata		sleep 0.5
3215880becSPetr Machata	defer_scope_pop
3315880becSPetr Machata
3415880becSPetr Machata	local count=$(grep -c -e 00:11:22:33:44:55 $tmpf)
3515880becSPetr Machata	((count == 1))
3615880becSPetr Machata	check_err $? "Got $count notifications, expected 1"
3715880becSPetr Machata
3815880becSPetr Machata	log_test "$what $op: Duplicate notifications"
3915880becSPetr Machata}
4015880becSPetr Machata
4115880becSPetr Machatatest_dup_bridge()
4215880becSPetr Machata{
4315880becSPetr Machata	ip_link_add br up type bridge vlan_filtering 1
4415880becSPetr Machata	do_test_dup add "bridge" dev br self
4515880becSPetr Machata	do_test_dup del "bridge" dev br self
4615880becSPetr Machata}
4715880becSPetr Machata
4815880becSPetr Machatatest_dup_vxlan_self()
4915880becSPetr Machata{
5015880becSPetr Machata	ip_link_add br up type bridge vlan_filtering 1
5115880becSPetr Machata	ip_link_add vx up type vxlan id 2000 dstport 4789
52*8653eb21SPetr Machata	ip_link_set_master vx br
5315880becSPetr Machata
5415880becSPetr Machata	do_test_dup add "vxlan" dev vx self dst 192.0.2.1
5515880becSPetr Machata	do_test_dup del "vxlan" dev vx self dst 192.0.2.1
5615880becSPetr Machata}
5715880becSPetr Machata
5815880becSPetr Machatatest_dup_vxlan_master()
5915880becSPetr Machata{
6015880becSPetr Machata	ip_link_add br up type bridge vlan_filtering 1
6115880becSPetr Machata	ip_link_add vx up type vxlan id 2000 dstport 4789
62*8653eb21SPetr Machata	ip_link_set_master vx br
6315880becSPetr Machata
6415880becSPetr Machata	do_test_dup add "vxlan master" dev vx master
6515880becSPetr Machata	do_test_dup del "vxlan master" dev vx master
6615880becSPetr Machata}
6715880becSPetr Machata
6815880becSPetr Machatatest_dup_macvlan_self()
6915880becSPetr Machata{
7015880becSPetr Machata	ip_link_add dd up type dummy
7115880becSPetr Machata	ip_link_add mv up link dd type macvlan mode passthru
7215880becSPetr Machata
7315880becSPetr Machata	do_test_dup add "macvlan self" dev mv self
7415880becSPetr Machata	do_test_dup del "macvlan self" dev mv self
7515880becSPetr Machata}
7615880becSPetr Machata
7715880becSPetr Machatatest_dup_macvlan_master()
7815880becSPetr Machata{
7915880becSPetr Machata	ip_link_add br up type bridge vlan_filtering 1
8015880becSPetr Machata	ip_link_add dd up type dummy
8115880becSPetr Machata	ip_link_add mv up link dd type macvlan mode passthru
82*8653eb21SPetr Machata	ip_link_set_master mv br
8315880becSPetr Machata
8415880becSPetr Machata	do_test_dup add "macvlan master" dev mv self
8515880becSPetr Machata	do_test_dup del "macvlan master" dev mv self
8615880becSPetr Machata}
8715880becSPetr Machata
8815880becSPetr Machatacleanup()
8915880becSPetr Machata{
9015880becSPetr Machata	defer_scopes_cleanup
9115880becSPetr Machata}
9215880becSPetr Machata
9315880becSPetr Machatatrap cleanup EXIT
9415880becSPetr Machatatests_run
9515880becSPetr Machata
9615880becSPetr Machataexit $EXIT_STATUS
97