Patch "selftests: mptcp: sockopt: relax expected returned size" has been added to the 6.3-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    selftests: mptcp: sockopt: relax expected returned size

to the 6.3-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     selftests-mptcp-sockopt-relax-expected-returned-size.patch
and it can be found in the queue-6.3 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.


>From 8dee6ca2ac1e5630a7bb6a98bc0b686916fc2000 Mon Sep 17 00:00:00 2001
From: Matthieu Baerts <matthieu.baerts@xxxxxxxxxxxx>
Date: Thu, 8 Jun 2023 18:38:51 +0200
Subject: selftests: mptcp: sockopt: relax expected returned size

From: Matthieu Baerts <matthieu.baerts@xxxxxxxxxxxx>

commit 8dee6ca2ac1e5630a7bb6a98bc0b686916fc2000 upstream.

Selftests are supposed to run on any kernels, including the old ones not
supporting all MPTCP features.

One of them is the getsockopt(SOL_MPTCP) to get info about the MPTCP
connections introduced by commit 55c42fa7fa33 ("mptcp: add MPTCP_INFO
getsockopt") and the following ones.

We cannot guess in advance which sizes the kernel will returned: older
kernel can returned smaller sizes, e.g. recently the tcp_info structure
has been modified in commit 71fc704768f6 ("tcp: add rcv_wnd and
plb_rehash to TCP_INFO") where a new field has been added.

The userspace can also expect a smaller size if it is compiled with old
uAPI kernel headers.

So for these sizes, we can only check if they are above a certain
threshold, 0 for the moment. We can also only compared sizes with the
ones set by the kernel.

Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368
Fixes: ce9979129a0b ("selftests: mptcp: add mptcp getsockopt test cases")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Matthieu Baerts <matthieu.baerts@xxxxxxxxxxxx>
Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
 tools/testing/selftests/net/mptcp/mptcp_sockopt.c |   18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

--- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.c
+++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.c
@@ -87,6 +87,10 @@ struct so_state {
 	uint64_t tcpi_rcv_delta;
 };
 
+#ifndef MIN
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+#endif
+
 static void die_perror(const char *msg)
 {
 	perror(msg);
@@ -349,13 +353,14 @@ static void do_getsockopt_tcp_info(struc
 			xerror("getsockopt MPTCP_TCPINFO (tries %d, %m)");
 
 		assert(olen <= sizeof(ti));
-		assert(ti.d.size_user == ti.d.size_kernel);
-		assert(ti.d.size_user == sizeof(struct tcp_info));
+		assert(ti.d.size_kernel > 0);
+		assert(ti.d.size_user ==
+		       MIN(ti.d.size_kernel, sizeof(struct tcp_info)));
 		assert(ti.d.num_subflows == 1);
 
 		assert(olen > (socklen_t)sizeof(struct mptcp_subflow_data));
 		olen -= sizeof(struct mptcp_subflow_data);
-		assert(olen == sizeof(struct tcp_info));
+		assert(olen == ti.d.size_user);
 
 		if (ti.ti[0].tcpi_bytes_sent == w &&
 		    ti.ti[0].tcpi_bytes_received == r)
@@ -401,13 +406,14 @@ static void do_getsockopt_subflow_addrs(
 		die_perror("getsockopt MPTCP_SUBFLOW_ADDRS");
 
 	assert(olen <= sizeof(addrs));
-	assert(addrs.d.size_user == addrs.d.size_kernel);
-	assert(addrs.d.size_user == sizeof(struct mptcp_subflow_addrs));
+	assert(addrs.d.size_kernel > 0);
+	assert(addrs.d.size_user ==
+	       MIN(addrs.d.size_kernel, sizeof(struct mptcp_subflow_addrs)));
 	assert(addrs.d.num_subflows == 1);
 
 	assert(olen > (socklen_t)sizeof(struct mptcp_subflow_data));
 	olen -= sizeof(struct mptcp_subflow_data);
-	assert(olen == sizeof(struct mptcp_subflow_addrs));
+	assert(olen == addrs.d.size_user);
 
 	llen = sizeof(local);
 	ret = getsockname(fd, (struct sockaddr *)&local, &llen);


Patches currently in stable-queue which might be from matthieu.baerts@xxxxxxxxxxxx are

queue-6.3/selftests-mptcp-join-fix-shellcheck-warnings.patch
queue-6.3/selftests-mptcp-join-support-rm_addr-for-used-endpoints-or-not.patch
queue-6.3/selftests-mptcp-pm-nl-skip-fullmesh-flag-checks-if-not-supported.patch
queue-6.3/selftests-mptcp-lib-skip-if-missing-symbol.patch
queue-6.3/selftests-mptcp-join-skip-fullmesh-flag-tests-if-not-supported.patch
queue-6.3/selftests-mptcp-connect-skip-tfo-tests-if-not-supported.patch
queue-6.3/selftests-mptcp-join-skip-fastclose-tests-if-not-supported.patch
queue-6.3/selftests-mptcp-remove-duplicated-entries-in-usage.patch
queue-6.3/selftests-mptcp-sockopt-skip-getsockopt-checks-if-not-supported.patch
queue-6.3/selftests-mptcp-join-skip-backup-if-set-flag-on-id-not-supported.patch
queue-6.3/selftests-mptcp-join-skip-mixed-tests-if-not-supported.patch
queue-6.3/selftests-mptcp-userspace-pm-skip-if-ip-tool-is-unavailable.patch
queue-6.3/selftests-mptcp-join-helpers-to-skip-tests.patch
queue-6.3/selftests-mptcp-lib-skip-if-not-below-kernel-version.patch
queue-6.3/selftests-mptcp-userspace-pm-skip-if-not-supported.patch
queue-6.3/selftests-mptcp-join-uniform-listener-tests.patch
queue-6.3/selftests-mptcp-diag-skip-listen-tests-if-not-supported.patch
queue-6.3/selftests-mptcp-sockopt-skip-tcp_inq-checks-if-not-supported.patch
queue-6.3/selftests-mptcp-join-skip-test-if-iptables-tc-cmds-fail.patch
queue-6.3/selftests-mptcp-join-skip-implicit-tests-if-not-supported.patch
queue-6.3/selftests-mptcp-userspace-pm-skip-pm-listener-events-tests-if-unavailable.patch
queue-6.3/selftests-mptcp-join-skip-fail-tests-if-not-supported.patch
queue-6.3/selftests-mptcp-sockopt-relax-expected-returned-size.patch
queue-6.3/selftests-mptcp-pm-nl-remove-hardcoded-default-limits.patch
queue-6.3/selftests-mptcp-join-skip-check-if-mib-counter-not-supported.patch
queue-6.3/selftests-mptcp-diag-skip-inuse-tests-if-not-supported.patch
queue-6.3/selftests-mptcp-join-use-iptables-legacy-if-available.patch
queue-6.3/selftests-mptcp-join-support-local-endpoint-being-tracked-or-not.patch
queue-6.3/selftests-mptcp-join-skip-userspace-pm-tests-if-not-supported.patch
queue-6.3/selftests-mptcp-connect-skip-transp-tests-if-not-supported.patch
queue-6.3/selftests-mptcp-join-skip-mpc-backups-tests-if-not-supported.patch
queue-6.3/selftests-mptcp-join-skip-pm-listener-tests-if-not-supported.patch
queue-6.3/selftests-mptcp-connect-skip-disconnect-tests-if-not-supported.patch



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux