selftests: mptcp: join: ability to invert ADD_ADDR check
authorMatthieu Baerts (NGI0) <matttbe@kernel.org>
Wed, 31 Jul 2024 11:05:58 +0000 (13:05 +0200)
committerJakub Kicinski <kuba@kernel.org>
Fri, 2 Aug 2024 01:24:49 +0000 (18:24 -0700)
In the following commit, the client will initiate the ADD_ADDR, instead
of the server. We need to way to verify the ADD_ADDR have been correctly
sent.

Note: the default expected counters for when the port number is given
are never changed by the caller, no need to accept them as parameter
then.

The 'Fixes' tag here below is the same as the one from the previous
commit: this patch here is not fixing anything wrong in the selftests,
but it validates the previous fix for an issue introduced by this commit
ID.

Fixes: 86e39e04482b ("mptcp: keep track of local endpoint still available for each msk")
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20240731-upstream-net-20240731-mptcp-endp-subflow-signal-v1-6-c8a9b036493b@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/mptcp/mptcp_join.sh

index 4df48f1f14abf744124a1b351dc0c9f9c692848c..52a25ac43d10e9b3eeabf3883da242f85240158f 100755 (executable)
@@ -1415,18 +1415,28 @@ chk_add_nr()
        local add_nr=$1
        local echo_nr=$2
        local port_nr=${3:-0}
-       local syn_nr=${4:-$port_nr}
-       local syn_ack_nr=${5:-$port_nr}
-       local ack_nr=${6:-$port_nr}
-       local mis_syn_nr=${7:-0}
-       local mis_ack_nr=${8:-0}
+       local ns_invert=${4:-""}
+       local syn_nr=$port_nr
+       local syn_ack_nr=$port_nr
+       local ack_nr=$port_nr
+       local mis_syn_nr=0
+       local mis_ack_nr=0
+       local ns_tx=$ns1
+       local ns_rx=$ns2
+       local extra_msg=""
        local count
        local timeout
 
-       timeout=$(ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout)
+       if [[ $ns_invert = "invert" ]]; then
+               ns_tx=$ns2
+               ns_rx=$ns1
+               extra_msg="invert"
+       fi
+
+       timeout=$(ip netns exec ${ns_tx} sysctl -n net.mptcp.add_addr_timeout)
 
        print_check "add"
-       count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtAddAddr")
+       count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtAddAddr")
        if [ -z "$count" ]; then
                print_skip
        # if the test configured a short timeout tolerate greater then expected
@@ -1438,7 +1448,7 @@ chk_add_nr()
        fi
 
        print_check "echo"
-       count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtEchoAdd")
+       count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtEchoAdd")
        if [ -z "$count" ]; then
                print_skip
        elif [ "$count" != "$echo_nr" ]; then
@@ -1449,7 +1459,7 @@ chk_add_nr()
 
        if [ $port_nr -gt 0 ]; then
                print_check "pt"
-               count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtPortAdd")
+               count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtPortAdd")
                if [ -z "$count" ]; then
                        print_skip
                elif [ "$count" != "$port_nr" ]; then
@@ -1459,7 +1469,7 @@ chk_add_nr()
                fi
 
                print_check "syn"
-               count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinPortSynRx")
+               count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMPJoinPortSynRx")
                if [ -z "$count" ]; then
                        print_skip
                elif [ "$count" != "$syn_nr" ]; then
@@ -1470,7 +1480,7 @@ chk_add_nr()
                fi
 
                print_check "synack"
-               count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtMPJoinPortSynAckRx")
+               count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtMPJoinPortSynAckRx")
                if [ -z "$count" ]; then
                        print_skip
                elif [ "$count" != "$syn_ack_nr" ]; then
@@ -1481,7 +1491,7 @@ chk_add_nr()
                fi
 
                print_check "ack"
-               count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinPortAckRx")
+               count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMPJoinPortAckRx")
                if [ -z "$count" ]; then
                        print_skip
                elif [ "$count" != "$ack_nr" ]; then
@@ -1492,7 +1502,7 @@ chk_add_nr()
                fi
 
                print_check "syn"
-               count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMismatchPortSynRx")
+               count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMismatchPortSynRx")
                if [ -z "$count" ]; then
                        print_skip
                elif [ "$count" != "$mis_syn_nr" ]; then
@@ -1503,7 +1513,7 @@ chk_add_nr()
                fi
 
                print_check "ack"
-               count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMismatchPortAckRx")
+               count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtMismatchPortAckRx")
                if [ -z "$count" ]; then
                        print_skip
                elif [ "$count" != "$mis_ack_nr" ]; then
@@ -1513,6 +1523,8 @@ chk_add_nr()
                        print_ok
                fi
        fi
+
+       print_info "$extra_msg"
 }
 
 chk_add_tx_nr()