0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043 ALL_TESTS="
0044 test_gretap
0045 test_ip6gretap
0046 "
0047
0048 NUM_NETIFS=6
0049 source lib.sh
0050 source mirror_lib.sh
0051 source mirror_gre_lib.sh
0052 source mirror_gre_topo_lib.sh
0053
0054 setup_prepare()
0055 {
0056 h1=${NETIFS[p1]}
0057 swp1=${NETIFS[p2]}
0058
0059 swp2=${NETIFS[p3]}
0060 h2=${NETIFS[p4]}
0061
0062 swp3=${NETIFS[p5]}
0063 h3=${NETIFS[p6]}
0064
0065 vrf_prepare
0066 mirror_gre_topo_create
0067
0068 ip link add name br2 type bridge vlan_filtering 0
0069 ip link set dev br2 up
0070
0071 ip link set dev $swp3 master br2
0072 ip route add 192.0.2.130/32 dev br2
0073 ip -6 route add 2001:db8:2::2/128 dev br2
0074
0075 ip address add dev br2 192.0.2.129/28
0076 ip address add dev br2 2001:db8:2::1/64
0077
0078 ip address add dev $h3 192.0.2.130/28
0079 ip address add dev $h3 2001:db8:2::2/64
0080 }
0081
0082 cleanup()
0083 {
0084 pre_cleanup
0085
0086 ip address del dev $h3 2001:db8:2::2/64
0087 ip address del dev $h3 192.0.2.130/28
0088 ip link del dev br2
0089
0090 mirror_gre_topo_destroy
0091 vrf_cleanup
0092 }
0093
0094 test_gretap()
0095 {
0096 full_test_span_gre_dir gt4 ingress 8 0 "mirror to gretap"
0097 full_test_span_gre_dir gt4 egress 0 8 "mirror to gretap"
0098 }
0099
0100 test_ip6gretap()
0101 {
0102 full_test_span_gre_dir gt6 ingress 8 0 "mirror to ip6gretap"
0103 full_test_span_gre_dir gt6 egress 0 8 "mirror to ip6gretap"
0104 }
0105
0106 test_all()
0107 {
0108 slow_path_trap_install $swp1 ingress
0109 slow_path_trap_install $swp1 egress
0110
0111 tests_run
0112
0113 slow_path_trap_uninstall $swp1 egress
0114 slow_path_trap_uninstall $swp1 ingress
0115 }
0116
0117 trap cleanup EXIT
0118
0119 setup_prepare
0120 setup_wait
0121
0122 tcflags="skip_hw"
0123 test_all
0124
0125 if ! tc_offload_check; then
0126 echo "WARN: Could not test offloaded functionality"
0127 else
0128 tcflags="skip_sw"
0129 test_all
0130 fi
0131
0132 exit $EXIT_STATUS