Before, they were only checked on demand, but it seems better to check
them each time received ADD_ADDRs are checked.

Errors are only reported when the counter exists, and the value is not
the expected one. This is similar to what is done in chk_join_nr: it
reduces the output, and avoids a lot of 'skip' when validating older
kernels. Also here, some tests need to adapt the default expected
counters, e.g. when ADD_ADDR echo are dropped on the reception side, or
it is not possible to send an ADD_ADDR due to the limited option space.

Reviewed-by: Mat Martineau <[email protected]>
Signed-off-by: Matthieu Baerts (NGI0) <[email protected]>
---
To: Shuah Khan <[email protected]>
Cc: [email protected]
---
 tools/testing/selftests/net/mptcp/mptcp_join.sh | 71 ++++++++++---------------
 1 file changed, 27 insertions(+), 44 deletions(-)

diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh 
b/tools/testing/selftests/net/mptcp/mptcp_join.sh
index d491c3e964d6..82c0f7df3be2 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
@@ -87,6 +87,10 @@ unset fb_mpc_data
 unset fb_md5_sig
 unset fb_dss
 
+unset add_addr_tx_nr
+unset add_addr_echo_tx_nr
+unset add_addr_drop_tx_nr
+
 # generated using "nfbpf_compile '(ip && (ip[54] & 0xf0) == 0x30) ||
 #                                (ip6 && (ip6[74] & 0xf0) == 0x30)'"
 CBPF_MPTCP_SUBOPTION_ADD_ADDR="14,
@@ -1710,6 +1714,9 @@ chk_add_nr()
        local ack_nr=$port_nr
        local mis_syn_nr=0
        local mis_ack_nr=0
+       local add_tx_nr=${add_addr_tx_nr:-${add_nr}}
+       local echo_tx_nr=${add_addr_echo_tx_nr:-${echo_nr}}
+       local drop_tx_nr=${add_addr_drop_tx_nr:-0}
        local ns_tx=$ns1
        local ns_rx=$ns2
        local tx=""
@@ -1811,50 +1818,25 @@ chk_add_nr()
                        print_ok
                fi
        fi
-}
 
-chk_add_tx_nr()
-{
-       local add_tx_nr=$1
-       local echo_tx_nr=$2
-       local count
-
-       print_check "add addr tx"
-       count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtAddAddrTx")
-       if [ -z "$count" ]; then
-               print_skip
+       count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtAddAddrTx")
        # Tolerate more ADD_ADDR then expected (if any), due to retransmissions
-       elif [ "$count" != "$add_tx_nr" ] &&
-            { [ "$add_tx_nr" -eq 0 ] || [ "$count" -lt "$add_tx_nr" ]; }; then
+       if [ -n "$count" ] && [ "$count" != "$add_tx_nr" ] &&
+          { [ "$add_tx_nr" -eq 0 ] || [ "$count" -lt "$add_tx_nr" ]; }; then
+               print_check "add addr tx"
                fail_test "got $count ADD_ADDR[s] TX, expected $add_tx_nr"
-       else
-               print_ok
        fi
 
-       print_check "add addr echo tx"
-       count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtEchoAddTx")
-       if [ -z "$count" ]; then
-               print_skip
-       elif [ "$count" != "$echo_tx_nr" ]; then
+       count=$(mptcp_lib_get_counter ${ns_rx} "MPTcpExtEchoAddTx")
+       if [ -n "$count" ] && [ "$count" != "$echo_tx_nr" ]; then
+               print_check "add addr echo tx"
                fail_test "got $count ADD_ADDR echo[s] TX, expected $echo_tx_nr"
-       else
-               print_ok
        fi
-}
 
-chk_add_drop_tx_nr()
-{
-       local drop_tx_nr=$1
-       local count
-
-       print_check "add addr tx drop"
-       count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtAddAddrTxDrop")
-       if [ -z "$count" ]; then
-               print_skip
-       elif [ "$count" != "$drop_tx_nr" ]; then
+       count=$(mptcp_lib_get_counter ${ns_tx} "MPTcpExtAddAddrTxDrop")
+       if [ -n "$count" ] && [ "$count" != "$drop_tx_nr" ]; then
+               print_check "add addr tx drop"
                fail_test "got $count ADD_ADDR drop[s] TX, expected $drop_tx_nr"
-       else
-               print_ok
        fi
 }
 
@@ -2267,7 +2249,6 @@ signal_address_tests()
                pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
                run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 0 0 0
-               chk_add_tx_nr 1 1
                chk_add_nr 1 1
        fi
 
@@ -2545,8 +2526,8 @@ add_addr_timeout_tests()
                speed=slow \
                        run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 1 1 1
-               chk_add_tx_nr 4 4
-               chk_add_nr 4 0
+               add_addr_echo_tx_nr=4 \
+                       chk_add_nr 4 0
        fi
 
        # add_addr timeout IPv6
@@ -2557,7 +2538,8 @@ add_addr_timeout_tests()
                speed=slow \
                        run_tests $ns1 $ns2 dead:beef:1::1
                chk_join_nr 1 1 1
-               chk_add_nr 4 0
+               add_addr_echo_tx_nr=4 \
+                       chk_add_nr 4 0
        fi
 
        # signal addresses timeout
@@ -2569,7 +2551,8 @@ add_addr_timeout_tests()
                speed=10 \
                        run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 2 2 2
-               chk_add_nr 8 0
+               add_addr_echo_tx_nr=8 \
+                       chk_add_nr 8 0
        fi
 
        # signal invalid addresses timeout
@@ -2582,7 +2565,8 @@ add_addr_timeout_tests()
                        run_tests $ns1 $ns2 10.0.1.1
                join_syn_tx=2 \
                        chk_join_nr 1 1 1
-               chk_add_nr 8 0
+               add_addr_echo_tx_nr=7 \
+                       chk_add_nr 8 0
        fi
 }
 
@@ -3331,9 +3315,8 @@ add_addr_ports_tests()
                pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal port 10100
                pm_nl_add_endpoint $ns1 dead:beef:3::1 flags signal
                run_tests $ns1 $ns2 dead:beef:1::1
-               chk_add_drop_tx_nr 1
-               chk_add_tx_nr 1 1
-               chk_add_nr 1 1 0
+               add_addr_drop_tx_nr=1 \
+                       chk_add_nr 1 1 0
        fi
 }
 

-- 
2.53.0


Reply via email to