MPTCP Linux Development
 help / color / mirror / Atom feed
From: Mat Martineau <martineau@kernel.org>
To: mptcp@lists.linux.dev, geliang@kernel.org, davem@davemloft.net,
	edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
	fw@strlen.de
Cc: "Matthieu Baerts (NGI0)" <matttbe@kernel.org>,
	netdev@vger.kernel.org, Mat Martineau <martineau@kernel.org>
Subject: [PATCH net-next v2 1/8] mptcp: SO_KEEPALIVE: fix getsockopt support
Date: Mon, 13 May 2024 18:13:25 -0700	[thread overview]
Message-ID: <20240514011335.176158-2-martineau@kernel.org> (raw)
In-Reply-To: <20240514011335.176158-1-martineau@kernel.org>

From: "Matthieu Baerts (NGI0)" <matttbe@kernel.org>

SO_KEEPALIVE support has to be set on each subflow: on each TCP socket,
where sk_prot->keepalive is defined. Technically, nothing has to be done
on the MPTCP socket. That's why mptcp_sol_socket_sync_intval() was
called instead of mptcp_sol_socket_intval().

Except that when nothing is done on the MPTCP socket, the
getsockopt(SO_KEEPALIVE), handled in net/core/sock.c:sk_getsockopt(),
will not know if SO_KEEPALIVE has been set on the different subflows or
not.

The fix is simple: simply call mptcp_sol_socket_intval() which will end
up calling net/core/sock.c:sk_setsockopt() where the SOCK_KEEPOPEN flag
will be set, the one used in sk_getsockopt().

So now, getsockopt(SO_KEEPALIVE) on an MPTCP socket will return the same
value as the one previously set with setsockopt(SO_KEEPALIVE).

Fixes: 1b3e7ede1365 ("mptcp: setsockopt: handle SO_KEEPALIVE and SO_PRIORITY")
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Mat Martineau <martineau@kernel.org>
---
 net/mptcp/sockopt.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c
index eaa3b79651a4..5ab506c96609 100644
--- a/net/mptcp/sockopt.c
+++ b/net/mptcp/sockopt.c
@@ -181,8 +181,6 @@ static int mptcp_setsockopt_sol_socket_int(struct mptcp_sock *msk, int optname,
 
 	switch (optname) {
 	case SO_KEEPALIVE:
-		mptcp_sol_socket_sync_intval(msk, optname, val);
-		return 0;
 	case SO_DEBUG:
 	case SO_MARK:
 	case SO_PRIORITY:
-- 
2.45.0


  reply	other threads:[~2024-05-14  1:13 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-14  1:13 [PATCH net-next v2 0/8] mptcp: small improvements, fix and clean-ups Mat Martineau
2024-05-14  1:13 ` Mat Martineau [this message]
2024-05-14  1:13 ` [PATCH net-next v2 2/8] mptcp: fix full TCP keep-alive support Mat Martineau
2024-05-14  1:13 ` [PATCH net-next v2 3/8] mptcp: sockopt: info: stop early if no buffer Mat Martineau
2024-05-14  1:13 ` [PATCH net-next v2 4/8] mptcp: add net.mptcp.available_schedulers Mat Martineau
2024-05-14  1:13 ` [PATCH net-next v2 5/8] mptcp: prefer strscpy over strcpy Mat Martineau
2024-05-14  1:13 ` [PATCH net-next v2 6/8] mptcp: remove unnecessary else statements Mat Martineau
2024-05-14  1:13 ` [PATCH net-next v2 7/8] mptcp: move mptcp_pm_gen.h's include Mat Martineau
2024-05-14  1:13 ` [PATCH net-next v2 8/8] mptcp: include inet_common in mib.h Mat Martineau
2024-05-14  1:40 ` [PATCH net-next v2 0/8] mptcp: small improvements, fix and clean-ups patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240514011335.176158-2-martineau@kernel.org \
    --to=martineau@kernel.org \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=fw@strlen.de \
    --cc=geliang@kernel.org \
    --cc=kuba@kernel.org \
    --cc=matttbe@kernel.org \
    --cc=mptcp@lists.linux.dev \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox