# SPDX-License-Identifier: GPL-2.0 source "$net_forwarding_dir/mirror_lib.sh" quick_test_span_gre_dir_ips() { local tundev=$1; shift local ip1=$1; shift local ip2=$1; shift local forward_type=$1; shift local backward_type=$1; shift do_test_span_dir_ips 10 h3-$tundev "$ip1" "$ip2" \ "$forward_type" "$backward_type" } fail_test_span_gre_dir_ips() { local tundev=$1; shift local ip1=$1; shift local ip2=$1; shift do_test_span_dir_ips 0 h3-$tundev "$ip1" "$ip2" } test_span_gre_dir_ips() { local tundev=$1; shift local forward_type=$1; shift local backward_type=$1; shift local ip1=$1; shift local ip2=$1; shift test_span_dir_ips h3-$tundev "$forward_type" \ "$backward_type" "$ip1" "$ip2" } full_test_span_gre_dir_ips() { local tundev=$1; shift local direction=$1; shift local forward_type=$1; shift local backward_type=$1; shift local what=$1; shift local ip1=$1; shift local ip2=$1; shift RET=0 mirror_install $swp1 $direction $tundev "matchall" test_span_dir_ips "h3-$tundev" "$forward_type" \ "$backward_type" "$ip1" "$ip2" mirror_uninstall $swp1 $direction log_test "$direction $what" } full_test_span_gre_dir_vlan_ips() { local tundev=$1; shift local direction=$1; shift local vlan_match=$1; shift local forward_type=$1; shift local backward_type=$1; shift local what=$1; shift local ip1=$1; shift local ip2=$1; shift RET=0 mirror_install $swp1 $direction $tundev "matchall" test_span_dir_ips "h3-$tundev" "$forward_type" \ "$backward_type" "$ip1" "$ip2" tc filter add dev $h3 ingress pref 77 prot 802.1q \ flower $vlan_match \ action pass mirror_test v$h1 $ip1 $ip2 $h3 77 '>= 10' tc filter del dev $h3 ingress pref 77 mirror_uninstall $swp1 $direction log_test "$direction $what" } quick_test_span_gre_dir() { local tundev=$1; shift local forward_type=${1-8}; shift local backward_type=${1-0}; shift quick_test_span_gre_dir_ips "$tundev" 192.0.2.1 192.0.2.2 \ "$forward_type" "$backward_type" } fail_test_span_gre_dir() { local tundev=$1; shift fail_test_span_gre_dir_ips "$tundev" 192.0.2.1 192.0.2.2 } full_test_span_gre_dir() { local tundev=$1; shift local direction=$1; shift local forward_type=$1; shift local backward_type=$1; shift local what=$1; shift full_test_span_gre_dir_ips "$tundev" "$direction" "$forward_type" \ "$backward_type" "$what" 192.0.2.1 192.0.2.2 } full_test_span_gre_dir_vlan() { local tundev=$1; shift local direction=$1; shift local vlan_match=$1; shift local forward_type=$1; shift local backward_type=$1; shift local what=$1; shift full_test_span_gre_dir_vlan_ips "$tundev" "$direction" "$vlan_match" \ "$forward_type" "$backward_type" \ "$what" 192.0.2.1 192.0.2.2 } full_test_span_gre_stp_ips() { local tundev=$1; shift local nbpdev=$1; shift local what=$1; shift local ip1=$1; shift local ip2=$1; shift local forward_type=$1; shift local backward_type=$1; shift local h3mac=$(mac_get $h3) RET=0 mirror_install $swp1 ingress $tundev "matchall" quick_test_span_gre_dir_ips $tundev $ip1 $ip2 \ "$forward_type" "$backward_type" bridge link set dev $nbpdev state disabled sleep 1 fail_test_span_gre_dir_ips $tundev $ip1 $ip2 bridge link set dev $nbpdev state forwarding sleep 1 quick_test_span_gre_dir_ips $tundev $ip1 $ip2 \ "$forward_type" "$backward_type" mirror_uninstall $swp1 ingress log_test "$what: STP state" } full_test_span_gre_stp() { local tundev=$1; shift local nbpdev=$1; shift local what=$1; shift local forward_type=${1-8}; shift local backward_type=${1-0}; shift full_test_span_gre_stp_ips "$tundev" "$nbpdev" "$what" \ 192.0.2.1 192.0.2.2 \ "$forward_type" "$backward_type" }