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

mirror_vlan.sh (2309B)


      1#!/bin/bash
      2# SPDX-License-Identifier: GPL-2.0
      3
      4# This test uses standard topology for testing mirroring. See mirror_topo_lib.sh
      5# for more details.
      6#
      7# Test for "tc action mirred egress mirror" that mirrors to a vlan device.
      8
      9ALL_TESTS="
     10	test_vlan
     11	test_tagged_vlan
     12"
     13
     14NUM_NETIFS=6
     15source lib.sh
     16source mirror_lib.sh
     17source mirror_topo_lib.sh
     18
     19setup_prepare()
     20{
     21	h1=${NETIFS[p1]}
     22	swp1=${NETIFS[p2]}
     23
     24	swp2=${NETIFS[p3]}
     25	h2=${NETIFS[p4]}
     26
     27	swp3=${NETIFS[p5]}
     28	h3=${NETIFS[p6]}
     29
     30	vrf_prepare
     31	mirror_topo_create
     32
     33	vlan_create $swp3 555
     34
     35	vlan_create $h3 555 v$h3
     36	matchall_sink_create $h3.555
     37
     38	vlan_create $h1 111 v$h1 192.0.2.17/28
     39	bridge vlan add dev $swp1 vid 111
     40
     41	vlan_create $h2 111 v$h2 192.0.2.18/28
     42	bridge vlan add dev $swp2 vid 111
     43}
     44
     45cleanup()
     46{
     47	pre_cleanup
     48
     49	vlan_destroy $h2 111
     50	vlan_destroy $h1 111
     51	vlan_destroy $h3 555
     52	vlan_destroy $swp3 555
     53
     54	mirror_topo_destroy
     55	vrf_cleanup
     56}
     57
     58test_vlan_dir()
     59{
     60	local direction=$1; shift
     61	local forward_type=$1; shift
     62	local backward_type=$1; shift
     63
     64	RET=0
     65
     66	mirror_install $swp1 $direction $swp3.555 "matchall $tcflags"
     67	test_span_dir "$h3.555" "$direction" "$forward_type" "$backward_type"
     68	mirror_uninstall $swp1 $direction
     69
     70	log_test "$direction mirror to vlan ($tcflags)"
     71}
     72
     73test_vlan()
     74{
     75	test_vlan_dir ingress 8 0
     76	test_vlan_dir egress 0 8
     77}
     78
     79test_tagged_vlan_dir()
     80{
     81	local direction=$1; shift
     82	local forward_type=$1; shift
     83	local backward_type=$1; shift
     84
     85	RET=0
     86
     87	mirror_install $swp1 $direction $swp3.555 "matchall $tcflags"
     88	do_test_span_vlan_dir_ips 10 "$h3.555" 111 "$direction" ip \
     89				  192.0.2.17 192.0.2.18
     90	do_test_span_vlan_dir_ips  0 "$h3.555" 555 "$direction" ip \
     91				  192.0.2.17 192.0.2.18
     92	mirror_uninstall $swp1 $direction
     93
     94	log_test "$direction mirror tagged to vlan ($tcflags)"
     95}
     96
     97test_tagged_vlan()
     98{
     99	test_tagged_vlan_dir ingress 8 0
    100	test_tagged_vlan_dir egress 0 8
    101}
    102
    103test_all()
    104{
    105	slow_path_trap_install $swp1 ingress
    106	slow_path_trap_install $swp1 egress
    107	trap_install $h3 ingress
    108
    109	tests_run
    110
    111	trap_uninstall $h3 ingress
    112	slow_path_trap_uninstall $swp1 egress
    113	slow_path_trap_uninstall $swp1 ingress
    114}
    115
    116trap cleanup EXIT
    117
    118setup_prepare
    119setup_wait
    120
    121tcflags="skip_hw"
    122test_all
    123
    124if ! tc_offload_check; then
    125	echo "WARN: Could not test offloaded functionality"
    126else
    127	tcflags="skip_sw"
    128	test_all
    129fi
    130
    131exit $EXIT_STATUS