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 ALL_TESTS="
0041 test_gretap
0042 test_ip6gretap
0043 "
0044
0045 NUM_NETIFS=6
0046 source lib.sh
0047 source mirror_lib.sh
0048 source mirror_gre_lib.sh
0049 source mirror_gre_topo_lib.sh
0050
0051 setup_prepare()
0052 {
0053 h1=${NETIFS[p1]}
0054 swp1=${NETIFS[p2]}
0055
0056 swp2=${NETIFS[p3]}
0057 h2=${NETIFS[p4]}
0058
0059 swp3=${NETIFS[p5]}
0060 h3=${NETIFS[p6]}
0061
0062 vrf_prepare
0063 mirror_gre_topo_create
0064
0065 ip link set dev br1 down
0066
0067 ip link set dev $swp3 master br1
0068 bridge vlan add dev br1 vid 555 pvid untagged self
0069 ip link set dev br1 up
0070 ip address add dev br1 192.0.2.129/28
0071 ip address add dev br1 2001:db8:2::1/64
0072
0073 ip -4 route add 192.0.2.130/32 dev br1
0074 ip -6 route add 2001:db8:2::2/128 dev br1
0075
0076 vlan_create $h3 555 v$h3 192.0.2.130/28 2001:db8:2::2/64
0077 bridge vlan add dev $swp3 vid 555
0078 }
0079
0080 cleanup()
0081 {
0082 pre_cleanup
0083
0084 ip link set dev $swp3 nomaster
0085 vlan_destroy $h3 555
0086
0087 mirror_gre_topo_destroy
0088 vrf_cleanup
0089 }
0090
0091 test_gretap()
0092 {
0093 full_test_span_gre_dir gt4 ingress 8 0 "mirror to gretap"
0094 full_test_span_gre_dir gt4 egress 0 8 "mirror to gretap"
0095 }
0096
0097 test_ip6gretap()
0098 {
0099 full_test_span_gre_dir gt6 ingress 8 0 "mirror to ip6gretap"
0100 full_test_span_gre_dir gt6 egress 0 8 "mirror to ip6gretap"
0101 }
0102
0103 tests()
0104 {
0105 slow_path_trap_install $swp1 ingress
0106 slow_path_trap_install $swp1 egress
0107
0108 tests_run
0109
0110 slow_path_trap_uninstall $swp1 egress
0111 slow_path_trap_uninstall $swp1 ingress
0112 }
0113
0114 trap cleanup EXIT
0115
0116 setup_prepare
0117 setup_wait
0118
0119 tcflags="skip_hw"
0120 tests
0121
0122 if ! tc_offload_check; then
0123 echo "WARN: Could not test offloaded functionality"
0124 else
0125 tcflags="skip_sw"
0126 tests
0127 fi
0128
0129 exit $EXIT_STATUS