]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.1-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Sep 2024 14:39:08 +0000 (16:39 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Sep 2024 14:39:08 +0000 (16:39 +0200)
added patches:
selftests-mptcp-join-cannot-rm-sf-if-closed.patch

queue-6.1/selftests-mptcp-join-cannot-rm-sf-if-closed.patch [new file with mode: 0644]
queue-6.1/series

diff --git a/queue-6.1/selftests-mptcp-join-cannot-rm-sf-if-closed.patch b/queue-6.1/selftests-mptcp-join-cannot-rm-sf-if-closed.patch
new file mode 100644 (file)
index 0000000..536a5cf
--- /dev/null
@@ -0,0 +1,92 @@
+From stable+bounces-73024-greg=kroah.com@vger.kernel.org Wed Sep  4 13:19:25 2024
+From: "Matthieu Baerts (NGI0)" <matttbe@kernel.org>
+Date: Wed,  4 Sep 2024 13:15:48 +0200
+Subject: selftests: mptcp: join: cannot rm sf if closed
+To: stable@vger.kernel.org, gregkh@linuxfoundation.org
+Cc: MPTCP Upstream <mptcp@lists.linux.dev>, "Matthieu Baerts (NGI0)" <matttbe@kernel.org>, Mat Martineau <martineau@kernel.org>, Jakub Kicinski <kuba@kernel.org>
+Message-ID: <20240904111548.4098486-2-matttbe@kernel.org>
+
+From: "Matthieu Baerts (NGI0)" <matttbe@kernel.org>
+
+commit e93681afcb96864ec26c3b2ce94008ce93577373 upstream.
+
+Thanks to the previous commit, the MPTCP subflows are now closed on both
+directions even when only the MPTCP path-manager of one peer asks for
+their closure.
+
+In the two tests modified here -- "userspace pm add & remove address"
+and "userspace pm create destroy subflow" -- one peer is controlled by
+the userspace PM, and the other one by the in-kernel PM. When the
+userspace PM sends a RM_ADDR notification, the in-kernel PM will
+automatically react by closing all subflows using this address. Now,
+thanks to the previous commit, the subflows are properly closed on both
+directions, the userspace PM can then no longer closes the same
+subflows if they are already closed. Before, it was OK to do that,
+because the subflows were still half-opened, still OK to send a RM_ADDR.
+
+In other words, thanks to the previous commit closing the subflows, an
+error will be returned to the userspace if it tries to close a subflow
+that has already been closed. So no need to run this command, which mean
+that the linked counters will then not be incremented.
+
+These tests are then no longer sending both a RM_ADDR, then closing the
+linked subflow just after. The test with the userspace PM on the server
+side is now removing one subflow linked to one address, then sending
+a RM_ADDR for another address. The test with the userspace PM on the
+client side is now only removing the subflow that was previously
+created.
+
+Cc: stable@vger.kernel.org
+Reviewed-by: Mat Martineau <martineau@kernel.org>
+Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
+Link: https://patch.msgid.link/20240826-net-mptcp-close-extra-sf-fin-v1-2-905199fe1172@kernel.org
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Fixes: 97040cf9806e ("selftests: mptcp: userspace pm address tests")
+Fixes: 5e986ec46874 ("selftests: mptcp: userspace pm subflow tests")
+[ It looks like this patch is needed for the same reasons as mentioned
+  above, but the resolution is different: the subflows and addresses are
+  removed elsewhere. The same type of adaptations have been applied
+  here. The Fixes tag has been replaced by better appropriated ones. ]
+Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/testing/selftests/net/mptcp/mptcp_join.sh |    7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+--- a/tools/testing/selftests/net/mptcp/mptcp_join.sh
++++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh
+@@ -957,8 +957,6 @@ do_transfer()
+                               dp=$(grep "type:10" "$evts_ns1" |
+                                    sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q')
+                               ip netns exec ${listener_ns} ./pm_nl_ctl rem token $tk id $id
+-                              ip netns exec ${listener_ns} ./pm_nl_ctl dsf lip "$addr" \
+-                                                      lport $sp rip $da rport $dp token $tk
+                       fi
+                       counter=$((counter + 1))
+@@ -1024,7 +1022,6 @@ do_transfer()
+                               sleep 1
+                               sp=$(grep "type:10" "$evts_ns2" |
+                                    sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q')
+-                              ip netns exec ${connector_ns} ./pm_nl_ctl rem token $tk id $id
+                               ip netns exec ${connector_ns} ./pm_nl_ctl dsf lip $addr lport $sp \
+                                                                       rip $da rport $dp token $tk
+                       fi
+@@ -3227,7 +3224,7 @@ userspace_tests()
+               run_tests $ns1 $ns2 10.0.1.1 0 userspace_1 0 slow
+               chk_join_nr 1 1 1
+               chk_add_nr 1 1
+-              chk_rm_nr 1 1 invert
++              chk_rm_nr 1 0 invert
+       fi
+       # userspace pm create destroy subflow
+@@ -3237,7 +3234,7 @@ userspace_tests()
+               pm_nl_set_limits $ns1 0 1
+               run_tests $ns1 $ns2 10.0.1.1 0 0 userspace_1 slow
+               chk_join_nr 1 1 1
+-              chk_rm_nr 1 1
++              chk_rm_nr 0 1
+       fi
+       # remove and re-add
index 1b3a318fd18b0ae78228ab93d58b0d63c5918b7f..92cb930b858ba4880894b0d57b841c83abc4c341 100644 (file)
@@ -28,3 +28,4 @@ mptcp-avoid-duplicated-sub_closed-events.patch
 selftests-mptcp-join-check-removing-id-0-endpoint.patch
 selftests-mptcp-join-no-extra-msg-if-no-counter.patch
 selftests-mptcp-join-check-re-re-adding-id-0-endp.patch
+selftests-mptcp-join-cannot-rm-sf-if-closed.patch