File Index
Files and directories
Sign in
FILE

devlink_trap.sh

File preview with syntax highlighting.

linux-6.19.14/tools/testing/selftests/drivers/net/mlxsw/devlink_trap.sh BASH
  1#!/bin/bash
  2# SPDX-License-Identifier: GPL-2.0
  3#
  4# Test generic devlink-trap functionality over mlxsw. These tests are not
  5# specific to a single trap, but do not check the devlink-trap common
  6# infrastructure either.
  7
  8lib_dir=$(dirname $0)/../../../net/forwarding
  9
 10ALL_TESTS="
 11	dev_del_test
 12"
 13NUM_NETIFS=4
 14source $lib_dir/tc_common.sh
 15source $lib_dir/lib.sh
 16source $lib_dir/devlink_lib.sh
 17
 18h1_create()
 19{
 20	simple_if_init $h1
 21}
 22
 23h1_destroy()
 24{
 25	simple_if_fini $h1
 26}
 27
 28h2_create()
 29{
 30	simple_if_init $h2
 31}
 32
 33h2_destroy()
 34{
 35	simple_if_fini $h2
 36}
 37
 38switch_create()
 39{
 40	ip link add dev br0 type bridge vlan_filtering 1 mcast_snooping 0
 41
 42	ip link set dev $swp1 master br0
 43	ip link set dev $swp2 master br0
 44
 45	ip link set dev br0 up
 46	ip link set dev $swp1 up
 47	ip link set dev $swp2 up
 48}
 49
 50switch_destroy()
 51{
 52	ip link set dev $swp2 down
 53	ip link set dev $swp1 down
 54
 55	ip link del dev br0
 56}
 57
 58setup_prepare()
 59{
 60	h1=${NETIFS[p1]}
 61	swp1=${NETIFS[p2]}
 62
 63	swp2=${NETIFS[p3]}
 64	h2=${NETIFS[p4]}
 65
 66	vrf_prepare
 67
 68	h1_create
 69	h2_create
 70
 71	switch_create
 72}
 73
 74cleanup()
 75{
 76	pre_cleanup
 77
 78	switch_destroy
 79
 80	h2_destroy
 81	h1_destroy
 82
 83	vrf_cleanup
 84}
 85
 86dev_del_test()
 87{
 88	local trap_name="source_mac_is_multicast"
 89	local smac=01:02:03:04:05:06
 90	local num_iter=5
 91	local mz_pid
 92	local i
 93
 94	$MZ $h1 -c 0 -p 100 -a $smac -b bcast -t ip -q &
 95	mz_pid=$!
 96
 97	# The purpose of this test is to make sure we correctly dismantle a
 98	# port while packets are trapped from it. This is done by reloading the
 99	# the driver while the 'ingress_smac_mc_drop' trap is triggered.
100	RET=0
101
102	for i in $(seq 1 $num_iter); do
103		log_info "Iteration $i / $num_iter"
104
105		devlink_trap_action_set $trap_name "trap"
106		sleep 1
107
108		devlink_reload
109		# Allow netdevices to be re-created following the reload
110		sleep 20
111
112		cleanup
113		setup_prepare
114		setup_wait
115	done
116
117	log_test "Device delete"
118
119	kill_process $mz_pid
120}
121
122trap cleanup EXIT
123
124setup_prepare
125setup_wait
126
127tests_run
128
129exit $EXIT_STATUS
~/ Read-only file preview.