File Index
Files and directories
Sign in
FILE

fdb_notify.sh

File preview with syntax highlighting.

linux-6.19.14/tools/testing/selftests/net/fdb_notify.sh BASH
 1#!/bin/bash
 2# SPDX-License-Identifier: GPL-2.0
 3
 4source lib.sh
 5
 6ALL_TESTS="
 7	test_dup_bridge
 8	test_dup_vxlan_self
 9	test_dup_vxlan_master
10	test_dup_macvlan_self
11	test_dup_macvlan_master
12"
13
14do_test_dup()
15{
16	local op=$1; shift
17	local what=$1; shift
18	local tmpf
19
20	RET=0
21
22	tmpf=$(mktemp)
23	defer rm "$tmpf"
24
25	defer_scope_push
26		bridge monitor fdb &> "$tmpf" &
27		defer kill_process $!
28
29		sleep 0.5
30		bridge fdb "$op" 00:11:22:33:44:55 vlan 1 "$@"
31		sleep 0.5
32	defer_scope_pop
33
34	local count=$(grep -c -e 00:11:22:33:44:55 $tmpf)
35	((count == 1))
36	check_err $? "Got $count notifications, expected 1"
37
38	log_test "$what $op: Duplicate notifications"
39}
40
41test_dup_bridge()
42{
43	adf_ip_link_add br up type bridge vlan_filtering 1
44	do_test_dup add "bridge" dev br self
45	do_test_dup del "bridge" dev br self
46}
47
48test_dup_vxlan_self()
49{
50	adf_ip_link_add br up type bridge vlan_filtering 1
51	adf_ip_link_add vx up type vxlan id 2000 dstport 4789
52	adf_ip_link_set_master vx br
53
54	do_test_dup add "vxlan" dev vx self dst 192.0.2.1
55	do_test_dup del "vxlan" dev vx self dst 192.0.2.1
56}
57
58test_dup_vxlan_master()
59{
60	adf_ip_link_add br up type bridge vlan_filtering 1
61	adf_ip_link_add vx up type vxlan id 2000 dstport 4789
62	adf_ip_link_set_master vx br
63
64	do_test_dup add "vxlan master" dev vx master
65	do_test_dup del "vxlan master" dev vx master
66}
67
68test_dup_macvlan_self()
69{
70	adf_ip_link_add dd up type dummy
71	adf_ip_link_add mv up link dd type macvlan mode passthru
72
73	do_test_dup add "macvlan self" dev mv self
74	do_test_dup del "macvlan self" dev mv self
75}
76
77test_dup_macvlan_master()
78{
79	adf_ip_link_add br up type bridge vlan_filtering 1
80	adf_ip_link_add dd up type dummy
81	adf_ip_link_add mv up link dd type macvlan mode passthru
82	adf_ip_link_set_master mv br
83
84	do_test_dup add "macvlan master" dev mv self
85	do_test_dup del "macvlan master" dev mv self
86}
87
88cleanup()
89{
90	defer_scopes_cleanup
91}
92
93trap cleanup EXIT
94tests_run
95
96exit $EXIT_STATUS
~/ Read-only file preview.