selftests: mptcp: add the flush addrs testcase
authorGeliang Tang <geliangtang@gmail.com>
Thu, 10 Dec 2020 22:25:00 +0000 (14:25 -0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 15 Dec 2020 01:30:06 +0000 (17:30 -0800)
This patch added the flush addrs testcase. In do_transfer, if the number
of removing addresses is less than 8, use the del addr command to remove
the addresses one by one. If the number is more than 8, use the flush addrs
command to remove the addresses.

Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Geliang Tang <geliangtang@gmail.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/mptcp/mptcp_join.sh

index 0eae628..9aa9624 100755 (executable)
@@ -264,27 +264,37 @@ do_transfer()
        cpid=$!
 
        if [ $rm_nr_ns1 -gt 0 ]; then
-               counter=1
-               sleep 1
+               if [ $rm_nr_ns1 -lt 8 ]; then
+                       counter=1
+                       sleep 1
 
-               while [ $counter -le $rm_nr_ns1 ]
-               do
-                       ip netns exec ${listener_ns} ./pm_nl_ctl del $counter
+                       while [ $counter -le $rm_nr_ns1 ]
+                       do
+                               ip netns exec ${listener_ns} ./pm_nl_ctl del $counter
+                               sleep 1
+                               let counter+=1
+                       done
+               else
                        sleep 1
-                       let counter+=1
-               done
+                       ip netns exec ${listener_ns} ./pm_nl_ctl flush
+               fi
        fi
 
        if [ $rm_nr_ns2 -gt 0 ]; then
-               counter=1
-               sleep 1
+               if [ $rm_nr_ns2 -lt 8 ]; then
+                       counter=1
+                       sleep 1
 
-               while [ $counter -le $rm_nr_ns2 ]
-               do
-                       ip netns exec ${connector_ns} ./pm_nl_ctl del $counter
+                       while [ $counter -le $rm_nr_ns2 ]
+                       do
+                               ip netns exec ${connector_ns} ./pm_nl_ctl del $counter
+                               sleep 1
+                               let counter+=1
+                       done
+               else
                        sleep 1
-                       let counter+=1
-               done
+                       ip netns exec ${connector_ns} ./pm_nl_ctl flush
+               fi
        fi
 
        wait $cpid
@@ -663,6 +673,18 @@ chk_join_nr "remove subflows and signal" 3 3 3
 chk_add_nr 1 1
 chk_rm_nr 2 2
 
+# subflows and signal, flush
+reset
+ip netns exec $ns1 ./pm_nl_ctl limits 0 3
+ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal
+ip netns exec $ns2 ./pm_nl_ctl limits 1 3
+ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow
+ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 flags subflow
+run_tests $ns1 $ns2 10.0.1.1 0 8 8 slow
+chk_join_nr "flush subflows and signal" 3 3 3
+chk_add_nr 1 1
+chk_rm_nr 2 2
+
 # subflow IPv6
 reset
 ip netns exec $ns1 ./pm_nl_ctl limits 0 1