selftests: forwarding: Test mirroring to deleted device

Tests that the mirroring code catches up with deletion of a mirrored-to
device.

Signed-off-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Petr Machata 2018-05-23 18:34:56 +02:00 committed by David S. Miller
parent d624613e42
commit 6b45432d78
1 changed files with 38 additions and 0 deletions

View File

@ -12,6 +12,7 @@ ALL_TESTS="
test_tun_up
test_egress_up
test_remote_ip
test_tun_del
"
NUM_NETIFS=6
@ -159,6 +160,35 @@ test_span_gre_remote_ip()
log_test "$what: remote address change ($tcflags)"
}
test_span_gre_tun_del()
{
local tundev=$1; shift
local type=$1; shift
local flags=$1; shift
local local_ip=$1; shift
local remote_ip=$1; shift
local what=$1; shift
RET=0
mirror_install $swp1 ingress $tundev "matchall $tcflags"
quick_test_span_gre_dir $tundev ingress
ip link del dev $tundev
fail_test_span_gre_dir $tundev ingress
tunnel_create $tundev $type $local_ip $remote_ip \
ttl 100 tos inherit $flags
# Recreating the tunnel doesn't reestablish mirroring, so reinstall it
# and verify it works for the follow-up tests.
mirror_uninstall $swp1 ingress
mirror_install $swp1 ingress $tundev "matchall $tcflags"
quick_test_span_gre_dir $tundev ingress
mirror_uninstall $swp1 ingress
log_test "$what: tunnel deleted ($tcflags)"
}
test_ttl()
{
test_span_gre_ttl gt4 gretap ip "mirror to gretap"
@ -183,6 +213,14 @@ test_remote_ip()
test_span_gre_remote_ip gt6 ip6gretap 2001:db8:2::2 2001:db8:2::4 "mirror to ip6gretap"
}
test_tun_del()
{
test_span_gre_tun_del gt4 gretap "" \
192.0.2.129 192.0.2.130 "mirror to gretap"
test_span_gre_tun_del gt6 ip6gretap allow-localremote \
2001:db8:2::1 2001:db8:2::2 "mirror to ip6gretap"
}
test_all()
{
slow_path_trap_install $swp1 ingress