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

bridge_mdb.sh (1701B)


      1#!/bin/bash
      2# SPDX-License-Identifier: GPL-2.0
      3#
      4# Verify that adding host mdb entries work as intended for all types of
      5# multicast filters: ipv4, ipv6, and mac
      6
      7ALL_TESTS="mdb_add_del_test"
      8NUM_NETIFS=2
      9
     10TEST_GROUP_IP4="225.1.2.3"
     11TEST_GROUP_IP6="ff02::42"
     12TEST_GROUP_MAC="01:00:01:c0:ff:ee"
     13
     14source lib.sh
     15
     16h1_create()
     17{
     18	simple_if_init $h1 192.0.2.1/24 2001:db8:1::1/64
     19}
     20
     21h1_destroy()
     22{
     23	simple_if_fini $h1 192.0.2.1/24 2001:db8:1::1/64
     24}
     25
     26switch_create()
     27{
     28	# Enable multicast filtering
     29	ip link add dev br0 type bridge mcast_snooping 1
     30
     31	ip link set dev $swp1 master br0
     32
     33	ip link set dev br0 up
     34	ip link set dev $swp1 up
     35}
     36
     37switch_destroy()
     38{
     39	ip link set dev $swp1 down
     40	ip link del dev br0
     41}
     42
     43setup_prepare()
     44{
     45	h1=${NETIFS[p1]}
     46	swp1=${NETIFS[p2]}
     47
     48	vrf_prepare
     49
     50	h1_create
     51	switch_create
     52}
     53
     54cleanup()
     55{
     56	pre_cleanup
     57
     58	switch_destroy
     59	h1_destroy
     60
     61	vrf_cleanup
     62}
     63
     64do_mdb_add_del()
     65{
     66	local group=$1
     67	local flag=$2
     68
     69	RET=0
     70	bridge mdb add dev br0 port br0 grp $group $flag 2>/dev/null
     71	check_err $? "Failed adding $group to br0, port br0"
     72
     73	if [ -z "$flag" ]; then
     74	    flag="temp"
     75	fi
     76
     77	bridge mdb show dev br0 | grep $group | grep -q $flag 2>/dev/null
     78	check_err $? "$group not added with $flag flag"
     79
     80	bridge mdb del dev br0 port br0 grp $group 2>/dev/null
     81	check_err $? "Failed deleting $group from br0, port br0"
     82
     83	bridge mdb show dev br0 | grep -q $group >/dev/null
     84	check_err_fail 1 $? "$group still in mdb after delete"
     85
     86	log_test "MDB add/del group $group to bridge port br0"
     87}
     88
     89mdb_add_del_test()
     90{
     91	do_mdb_add_del $TEST_GROUP_MAC permanent
     92	do_mdb_add_del $TEST_GROUP_IP4
     93	do_mdb_add_del $TEST_GROUP_IP6
     94}
     95
     96trap cleanup EXIT
     97
     98setup_prepare
     99setup_wait
    100
    101tests_run
    102
    103exit $EXIT_STATUS