cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

devlink_trap.sh (1928B)


      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 $mz_pid && wait $mz_pid &> /dev/null
    120}
    121
    122trap cleanup EXIT
    123
    124setup_prepare
    125setup_wait
    126
    127tests_run
    128
    129exit $EXIT_STATUS