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_gre_flower.sh (2891B)


      1#!/bin/bash
      2# SPDX-License-Identifier: GPL-2.0
      3
      4# This test uses standard topology for testing gretap. See
      5# mirror_gre_topo_lib.sh for more details.
      6#
      7# This tests flower-triggered mirroring to gretap and ip6gretap netdevices. The
      8# interfaces on H1 and H2 have two addresses each. Flower match on one of the
      9# addresses is configured with mirror action. It is expected that when pinging
     10# this address, mirroring takes place, whereas when pinging the other one,
     11# there's no mirroring.
     12
     13ALL_TESTS="
     14	test_gretap
     15	test_ip6gretap
     16"
     17
     18NUM_NETIFS=6
     19source lib.sh
     20source mirror_lib.sh
     21source mirror_gre_lib.sh
     22source mirror_gre_topo_lib.sh
     23
     24setup_prepare()
     25{
     26	h1=${NETIFS[p1]}
     27	swp1=${NETIFS[p2]}
     28
     29	swp2=${NETIFS[p3]}
     30	h2=${NETIFS[p4]}
     31
     32	swp3=${NETIFS[p5]}
     33	h3=${NETIFS[p6]}
     34
     35	vrf_prepare
     36	mirror_gre_topo_create
     37
     38	ip address add dev $swp3 192.0.2.129/28
     39	ip address add dev $h3 192.0.2.130/28
     40
     41	ip address add dev $swp3 2001:db8:2::1/64
     42	ip address add dev $h3 2001:db8:2::2/64
     43
     44	ip address add dev $h1 192.0.2.3/28
     45	ip address add dev $h2 192.0.2.4/28
     46}
     47
     48cleanup()
     49{
     50	pre_cleanup
     51
     52	ip address del dev $h2 192.0.2.4/28
     53	ip address del dev $h1 192.0.2.3/28
     54
     55	ip address del dev $h3 2001:db8:2::2/64
     56	ip address del dev $swp3 2001:db8:2::1/64
     57
     58	ip address del dev $h3 192.0.2.130/28
     59	ip address del dev $swp3 192.0.2.129/28
     60
     61	mirror_gre_topo_destroy
     62	vrf_cleanup
     63}
     64
     65test_span_gre_dir_acl()
     66{
     67	test_span_gre_dir_ips "$@" 192.0.2.3 192.0.2.4
     68}
     69
     70fail_test_span_gre_dir_acl()
     71{
     72	fail_test_span_gre_dir_ips "$@" 192.0.2.3 192.0.2.4
     73}
     74
     75full_test_span_gre_dir_acl()
     76{
     77	local tundev=$1; shift
     78	local direction=$1; shift
     79	local forward_type=$1; shift
     80	local backward_type=$1; shift
     81	local match_dip=$1; shift
     82	local what=$1; shift
     83
     84	RET=0
     85
     86	mirror_install $swp1 $direction $tundev \
     87		       "protocol ip flower $tcflags dst_ip $match_dip"
     88	fail_test_span_gre_dir $tundev $direction
     89	test_span_gre_dir_acl "$tundev" "$direction" \
     90			  "$forward_type" "$backward_type"
     91	mirror_uninstall $swp1 $direction
     92
     93	# Test lack of mirroring after ACL mirror is uninstalled.
     94	fail_test_span_gre_dir_acl "$tundev" "$direction"
     95
     96	log_test "$direction $what ($tcflags)"
     97}
     98
     99test_gretap()
    100{
    101	full_test_span_gre_dir_acl gt4 ingress 8 0 192.0.2.4 "ACL mirror to gretap"
    102	full_test_span_gre_dir_acl gt4 egress 0 8 192.0.2.3 "ACL mirror to gretap"
    103}
    104
    105test_ip6gretap()
    106{
    107	full_test_span_gre_dir_acl gt6 ingress 8 0 192.0.2.4 "ACL mirror to ip6gretap"
    108	full_test_span_gre_dir_acl gt6 egress 0 8 192.0.2.3 "ACL mirror to ip6gretap"
    109}
    110
    111test_all()
    112{
    113	slow_path_trap_install $swp1 ingress
    114	slow_path_trap_install $swp1 egress
    115
    116	tests_run
    117
    118	slow_path_trap_uninstall $swp1 egress
    119	slow_path_trap_uninstall $swp1 ingress
    120}
    121
    122trap cleanup EXIT
    123
    124setup_prepare
    125setup_wait
    126
    127tcflags="skip_hw"
    128test_all
    129
    130if ! tc_offload_check; then
    131	echo "WARN: Could not test offloaded functionality"
    132else
    133	tcflags="skip_sw"
    134	test_all
    135fi
    136
    137exit $EXIT_STATUS