| # 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" |
| } |