selftests: forwarding: Additions to mirror-to-gretap tests
Subsystems (4)
cover selftests: forwarding: Additions to mirror-to-gretap tests
This patchset is for a handful of edge cases in mirror-to-gretap
scenarios: removal of mirrored-to netdevice (#1), removal of underlay route for tunnel remote endpoint (#2) and cessation of mirroring upon removal of flower mirroring rule (#3).
Petr Machata (3):
selftests: forwarding: Test mirroring to deleted device
selftests: forwarding: Test removal of underlay route
selftests: forwarding: Test removal of mirroring
.../selftests/net/forwarding/mirror_gre_changes.sh | 68 ++++++++++++++++++++++ .../selftests/net/forwarding/mirror_gre_flower.sh | 8 +++ 2 files changed, 76 insertions(+)
Signature · 6 lines
2.4.11 -- To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH 1/3 selftests: forwarding: Test mirroring to deleted device
Tests that the mirroring code catches up with deletion of a mirrored-to device.
--- .../selftests/net/forwarding/mirror_gre_changes.sh | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+)
tools/testing/selftests/net/forwarding/mirror_gre_changes.sh +38 -0
@@ -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
Signature · 6 lines
2.4.11 -- To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH 2/3 selftests: forwarding: Test removal of underlay route
In reply to Petr MachataWhen underlay route is removed, the mirrored traffic should not be forwarded.
--- .../selftests/net/forwarding/mirror_gre_changes.sh | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+)
tools/testing/selftests/net/forwarding/mirror_gre_changes.sh +30 -0
@@ -13,6 +13,7 @@ ALL_TESTS=" test_egress_up test_remote_ip test_tun_del + test_route_del " NUM_NETIFS=6
@@ -189,6 +190,29 @@ test_span_gre_tun_del() log_test "$what: tunnel deleted ($tcflags)" } +test_span_gre_route_del() +{ + local tundev=$1; shift + local edev=$1; shift + local route=$1; shift + local what=$1; shift + + RET=0 + + mirror_install $swp1 ingress $tundev "matchall $tcflags" + quick_test_span_gre_dir $tundev ingress + + ip route del $route dev $edev + fail_test_span_gre_dir $tundev ingress + + ip route add $route dev $edev + quick_test_span_gre_dir $tundev ingress + + mirror_uninstall $swp1 ingress + + log_test "$what: underlay route removal ($tcflags)" +} + test_ttl() { test_span_gre_ttl gt4 gretap ip "mirror to gretap"
@@ -221,6 +245,12 @@ test_tun_del() 2001:db8:2::1 2001:db8:2::2 "mirror to ip6gretap" } +test_route_del() +{ + test_span_gre_route_del gt4 $swp3 192.0.2.128/28 "mirror to gretap" + test_span_gre_route_del gt6 $swp3 2001:db8:2::/64 "mirror to ip6gretap" +} + test_all() { slow_path_trap_install $swp1 ingress
Signature · 6 lines
2.4.11 -- To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH 3/3 selftests: forwarding: Test removal of mirroring
In reply to Petr MachataTest that when flower-based mirror action is removed, mirroring stops.
--- tools/testing/selftests/net/forwarding/mirror_gre_flower.sh | 8 ++++++++ 1 file changed, 8 insertions(+)
tools/testing/selftests/net/forwarding/mirror_gre_flower.sh +8 -0
@@ -67,6 +67,11 @@ test_span_gre_dir_acl() test_span_gre_dir_ips "$@" 192.0.2.3 192.0.2.4 } +fail_test_span_gre_dir_acl() +{ + fail_test_span_gre_dir_ips "$@" 192.0.2.3 192.0.2.4 +} + full_test_span_gre_dir_acl() { local tundev=$1; shift
@@ -83,6 +88,9 @@ full_test_span_gre_dir_acl() "$forward_type" "$backward_type" mirror_uninstall $swp1 $direction + # Test lack of mirroring after ACL mirror is uninstalled. + fail_test_span_gre_dir_acl "$tundev" "$direction" + log_test "$direction $what ($tcflags)" }
Signature · 6 lines
2.4.11 -- To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
David Miller
maintainerFrom: Petr Machata <petrm at mellanox.com>
Date: Wed, 23 May 2018 18:34:49 +0200
Quoted 4 lines
This patchset is for a handful of edge cases in mirror-to-gretap
scenarios: removal of mirrored-to netdevice (#1), removal of underlay route for tunnel remote endpoint (#2) and cessation of mirroring upon removal of flower mirroring rule (#3).
Series applied, thank you.
--
To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html