selftests: forwarding: mirror_gre_lib: Extract generic functions
authorPetr Machata <petrm@mellanox.com>
Thu, 24 May 2018 14:27:16 +0000 (16:27 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 25 May 2018 02:26:19 +0000 (22:26 -0400)
For non-GRE mirroring tests, a functions along the lines of
do_test_span_gre_dir_ips() and test_span_gre_dir_ips() are necessary,
but such that they don't assume tunnels are involved. Extract the code
from mirror_gre_lib.sh to mirror_lib.sh and convert to just use a given
device without assuming it's named "h3-$tundev". Convert the two
above-mentioned functions to wrappers that pass along the correct device
name.

Add test_span_dir() and fail_test_span_dir() to round up the API for use
by following patches.

Signed-off-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/net/forwarding/mirror_gre_lib.sh
tools/testing/selftests/net/forwarding/mirror_lib.sh

index 207ffd1..c7b2cdc 100644 (file)
@@ -1,47 +1,26 @@
 # SPDX-License-Identifier: GPL-2.0
 
-do_test_span_gre_dir_ips()
-{
-       local expect=$1; shift
-       local tundev=$1; shift
-       local direction=$1; shift
-       local ip1=$1; shift
-       local ip2=$1; shift
-
-       icmp_capture_install h3-$tundev
-       mirror_test v$h1 $ip1 $ip2 h3-$tundev 100 $expect
-       mirror_test v$h2 $ip2 $ip1 h3-$tundev 100 $expect
-       icmp_capture_uninstall h3-$tundev
-}
+source mirror_lib.sh
 
 quick_test_span_gre_dir_ips()
 {
-       do_test_span_gre_dir_ips 10 "$@"
+       local tundev=$1; shift
+
+       do_test_span_dir_ips 10 h3-$tundev "$@"
 }
 
 fail_test_span_gre_dir_ips()
 {
-       do_test_span_gre_dir_ips 0 "$@"
+       local tundev=$1; shift
+
+       do_test_span_dir_ips 0 h3-$tundev "$@"
 }
 
 test_span_gre_dir_ips()
 {
        local tundev=$1; shift
-       local direction=$1; shift
-       local forward_type=$1; shift
-       local backward_type=$1; shift
-       local ip1=$1; shift
-       local ip2=$1; shift
-
-       quick_test_span_gre_dir_ips "$tundev" "$direction" "$ip1" "$ip2"
-
-       icmp_capture_install h3-$tundev "type $forward_type"
-       mirror_test v$h1 $ip1 $ip2 h3-$tundev 100 10
-       icmp_capture_uninstall h3-$tundev
 
-       icmp_capture_install h3-$tundev "type $backward_type"
-       mirror_test v$h2 $ip2 $ip1 h3-$tundev 100 10
-       icmp_capture_uninstall h3-$tundev
+       test_span_dir_ips h3-$tundev "$@"
 }
 
 full_test_span_gre_dir_ips()
@@ -57,8 +36,8 @@ full_test_span_gre_dir_ips()
        RET=0
 
        mirror_install $swp1 $direction $tundev "matchall $tcflags"
-       test_span_gre_dir_ips "$tundev" "$direction" "$forward_type" \
-                             "$backward_type" "$ip1" "$ip2"
+       test_span_dir_ips "h3-$tundev" "$direction" "$forward_type" \
+                         "$backward_type" "$ip1" "$ip2"
        mirror_uninstall $swp1 $direction
 
        log_test "$direction $what ($tcflags)"
index e5028a5..04cbc38 100644 (file)
@@ -38,3 +38,57 @@ mirror_test()
        ((expect <= delta && delta <= expect + 2))
        check_err $? "Expected to capture $expect packets, got $delta."
 }
+
+do_test_span_dir_ips()
+{
+       local expect=$1; shift
+       local dev=$1; shift
+       local direction=$1; shift
+       local ip1=$1; shift
+       local ip2=$1; shift
+
+       icmp_capture_install $dev
+       mirror_test v$h1 $ip1 $ip2 $dev 100 $expect
+       mirror_test v$h2 $ip2 $ip1 $dev 100 $expect
+       icmp_capture_uninstall $dev
+}
+
+quick_test_span_dir_ips()
+{
+       do_test_span_dir_ips 10 "$@"
+}
+
+fail_test_span_dir_ips()
+{
+       do_test_span_dir_ips 0 "$@"
+}
+
+test_span_dir_ips()
+{
+       local dev=$1; shift
+       local direction=$1; shift
+       local forward_type=$1; shift
+       local backward_type=$1; shift
+       local ip1=$1; shift
+       local ip2=$1; shift
+
+       quick_test_span_dir_ips "$dev" "$direction" "$ip1" "$ip2"
+
+       icmp_capture_install $dev "type $forward_type"
+       mirror_test v$h1 $ip1 $ip2 $dev 100 10
+       icmp_capture_uninstall $dev
+
+       icmp_capture_install $dev "type $backward_type"
+       mirror_test v$h2 $ip2 $ip1 $dev 100 10
+       icmp_capture_uninstall $dev
+}
+
+fail_test_span_dir()
+{
+       fail_test_span_dir_ips "$@" 192.0.2.1 192.0.2.2
+}
+
+test_span_dir()
+{
+       test_span_dir_ips "$@" 192.0.2.1 192.0.2.2
+}