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# Test for "tc action mirred egress mirror" that mirrors to a gretap netdevice 8# whose underlay route points at a vlan device. 9 10ALL_TESTS=" 11 test_gretap 12" 13 14NUM_NETIFS=6 15source lib.sh 16source mirror_lib.sh 17source mirror_gre_lib.sh 18source mirror_gre_topo_lib.sh 19 20setup_prepare() 21{ 22 h1=${NETIFS[p1]} 23 swp1=${NETIFS[p2]} 24 25 swp2=${NETIFS[p3]} 26 h2=${NETIFS[p4]} 27 28 swp3=${NETIFS[p5]} 29 h3=${NETIFS[p6]} 30 31 vrf_prepare 32 mirror_gre_topo_create 33 34 ip link add name $swp3.555 link $swp3 type vlan id 555 35 ip address add dev $swp3.555 192.0.2.129/32 36 ip address add dev $swp3.555 2001:db8:2::1/128 37 ip link set dev $swp3.555 up 38 39 ip route add 192.0.2.130/32 dev $swp3.555 40 ip -6 route add 2001:db8:2::2/128 dev $swp3.555 41 42 ip link add name $h3.555 link $h3 type vlan id 555 43 ip link set dev $h3.555 master v$h3 44 ip address add dev $h3.555 192.0.2.130/28 45 ip address add dev $h3.555 2001:db8:2::2/64 46 ip link set dev $h3.555 up 47} 48 49cleanup() 50{ 51 pre_cleanup 52 53 ip link del dev $h3.555 54 ip link del dev $swp3.555 55 56 mirror_gre_topo_destroy 57 vrf_cleanup 58} 59 60test_gretap() 61{ 62 full_test_span_gre_dir gt4 ingress 8 0 "mirror to gretap" 63 full_test_span_gre_dir gt4 egress 0 8 "mirror to gretap" 64} 65 66test_all() 67{ 68 slow_path_trap_install $swp1 ingress 69 slow_path_trap_install $swp1 egress 70 71 tests_run 72 73 slow_path_trap_uninstall $swp1 egress 74 slow_path_trap_uninstall $swp1 ingress 75} 76 77trap cleanup EXIT 78 79setup_prepare 80setup_wait 81 82tcflags="skip_hw" 83test_all 84 85if ! tc_offload_check; then 86 echo "WARN: Could not test offloaded functionality" 87else 88 tcflags="skip_sw" 89 test_all 90fi 91 92exit $EXIT_STATUS 93