]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
selftests: mptcp: join: rm: set backup flag
authorMatthieu Baerts (NGI0) <matttbe@kernel.org>
Mon, 10 Nov 2025 18:23:41 +0000 (19:23 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Nov 2025 09:36:04 +0000 (10:36 +0100)
commit aea73bae662a0e184393d6d7d0feb18d2577b9b9 upstream.

Some of these 'remove' tests rarely fail because a subflow has been
reset instead of cleanly removed. This can happen when one extra subflow
which has never carried data is being closed (FIN) on one side, while
the other is sending data for the first time.

To avoid such subflows to be used right at the end, the backup flag has
been added. With that, data will be only carried on the initial subflow.

Fixes: d2c4333a801c ("selftests: mptcp: add testcases for removing addrs")
Cc: stable@vger.kernel.org
Reviewed-by: Geliang Tang <geliang@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20251110-net-mptcp-sft-join-unstable-v1-2-a4332c714e10@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tools/testing/selftests/net/mptcp/mptcp_join.sh

index 7ac63821a8842fd021af028cecf8ddee6f4726c4..00b6c6cd76b8fd7753598d251809e8a53b745592 100755 (executable)
@@ -2321,7 +2321,7 @@ remove_tests()
        if reset "remove single subflow"; then
                pm_nl_set_limits $ns1 0 1
                pm_nl_set_limits $ns2 0 1
-               pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
+               pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup
                addr_nr_ns2=-1 speed=slow \
                        run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 1 1 1
@@ -2334,8 +2334,8 @@ remove_tests()
        if reset "remove multiple subflows"; then
                pm_nl_set_limits $ns1 0 2
                pm_nl_set_limits $ns2 0 2
-               pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow
-               pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
+               pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,backup
+               pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup
                addr_nr_ns2=-2 speed=slow \
                        run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 2 2 2
@@ -2346,7 +2346,7 @@ remove_tests()
        # single address, remove
        if reset "remove single address"; then
                pm_nl_set_limits $ns1 0 1
-               pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
+               pm_nl_add_endpoint $ns1 10.0.2.1 flags signal,backup
                pm_nl_set_limits $ns2 1 1
                addr_nr_ns1=-1 speed=slow \
                        run_tests $ns1 $ns2 10.0.1.1
@@ -2359,9 +2359,9 @@ remove_tests()
        # subflow and signal, remove
        if reset "remove subflow and signal"; then
                pm_nl_set_limits $ns1 0 2
-               pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
+               pm_nl_add_endpoint $ns1 10.0.2.1 flags signal,backup
                pm_nl_set_limits $ns2 1 2
-               pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
+               pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup
                addr_nr_ns1=-1 addr_nr_ns2=-1 speed=slow \
                        run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 2 2 2
@@ -2373,10 +2373,10 @@ remove_tests()
        # subflows and signal, remove
        if reset "remove subflows and signal"; then
                pm_nl_set_limits $ns1 0 3
-               pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
+               pm_nl_add_endpoint $ns1 10.0.2.1 flags signal,backup
                pm_nl_set_limits $ns2 1 3
-               pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
-               pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow
+               pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup
+               pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow,backup
                addr_nr_ns1=-1 addr_nr_ns2=-2 speed=10 \
                        run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 3 3 3
@@ -2388,9 +2388,9 @@ remove_tests()
        # addresses remove
        if reset "remove addresses"; then
                pm_nl_set_limits $ns1 3 3
-               pm_nl_add_endpoint $ns1 10.0.2.1 flags signal id 250
-               pm_nl_add_endpoint $ns1 10.0.3.1 flags signal
-               pm_nl_add_endpoint $ns1 10.0.4.1 flags signal
+               pm_nl_add_endpoint $ns1 10.0.2.1 flags signal,backup id 250
+               pm_nl_add_endpoint $ns1 10.0.3.1 flags signal,backup
+               pm_nl_add_endpoint $ns1 10.0.4.1 flags signal,backup
                pm_nl_set_limits $ns2 3 3
                addr_nr_ns1=-3 speed=10 \
                        run_tests $ns1 $ns2 10.0.1.1
@@ -2403,10 +2403,10 @@ remove_tests()
        # invalid addresses remove
        if reset "remove invalid addresses"; then
                pm_nl_set_limits $ns1 3 3
-               pm_nl_add_endpoint $ns1 10.0.12.1 flags signal
+               pm_nl_add_endpoint $ns1 10.0.12.1 flags signal,backup
                # broadcast IP: no packet for this address will be received on ns1
-               pm_nl_add_endpoint $ns1 224.0.0.1 flags signal
-               pm_nl_add_endpoint $ns1 10.0.3.1 flags signal
+               pm_nl_add_endpoint $ns1 224.0.0.1 flags signal,backup
+               pm_nl_add_endpoint $ns1 10.0.3.1 flags signal,backup
                pm_nl_set_limits $ns2 2 2
                addr_nr_ns1=-3 speed=10 \
                        run_tests $ns1 $ns2 10.0.1.1
@@ -2420,10 +2420,10 @@ remove_tests()
        # subflows and signal, flush
        if reset "flush subflows and signal"; then
                pm_nl_set_limits $ns1 0 3
-               pm_nl_add_endpoint $ns1 10.0.2.1 flags signal
+               pm_nl_add_endpoint $ns1 10.0.2.1 flags signal,backup
                pm_nl_set_limits $ns2 1 3
-               pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
-               pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow
+               pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup
+               pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow,backup
                addr_nr_ns1=-8 addr_nr_ns2=-8 speed=slow \
                        run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 3 3 3
@@ -2436,9 +2436,9 @@ remove_tests()
        if reset "flush subflows"; then
                pm_nl_set_limits $ns1 3 3
                pm_nl_set_limits $ns2 3 3
-               pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow id 150
-               pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow
-               pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow
+               pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,backup id 150
+               pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup
+               pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow,backup
                addr_nr_ns1=-8 addr_nr_ns2=-8 speed=slow \
                        run_tests $ns1 $ns2 10.0.1.1
                chk_join_nr 3 3 3
@@ -2455,9 +2455,9 @@ remove_tests()
        # addresses flush
        if reset "flush addresses"; then
                pm_nl_set_limits $ns1 3 3
-               pm_nl_add_endpoint $ns1 10.0.2.1 flags signal id 250
-               pm_nl_add_endpoint $ns1 10.0.3.1 flags signal
-               pm_nl_add_endpoint $ns1 10.0.4.1 flags signal
+               pm_nl_add_endpoint $ns1 10.0.2.1 flags signal,backup id 250
+               pm_nl_add_endpoint $ns1 10.0.3.1 flags signal,backup
+               pm_nl_add_endpoint $ns1 10.0.4.1 flags signal,backup
                pm_nl_set_limits $ns2 3 3
                addr_nr_ns1=-8 addr_nr_ns2=-8 speed=slow \
                        run_tests $ns1 $ns2 10.0.1.1
@@ -2470,9 +2470,9 @@ remove_tests()
        # invalid addresses flush
        if reset "flush invalid addresses"; then
                pm_nl_set_limits $ns1 3 3
-               pm_nl_add_endpoint $ns1 10.0.12.1 flags signal
-               pm_nl_add_endpoint $ns1 10.0.3.1 flags signal
-               pm_nl_add_endpoint $ns1 10.0.14.1 flags signal
+               pm_nl_add_endpoint $ns1 10.0.12.1 flags signal,backup
+               pm_nl_add_endpoint $ns1 10.0.3.1 flags signal,backup
+               pm_nl_add_endpoint $ns1 10.0.14.1 flags signal,backup
                pm_nl_set_limits $ns2 3 3
                addr_nr_ns1=-8 speed=slow \
                        run_tests $ns1 $ns2 10.0.1.1