From nobody Sat Apr 11 11:22:41 2026 Received: from out-186.mta0.migadu.com (out-186.mta0.migadu.com [91.218.175.186]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 22B1037DE9C for ; Tue, 7 Apr 2026 08:45:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.186 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775551529; cv=none; b=S96Mm00950T3oeKdWBVl8JtXJvNj4bCcTxS8uGMer6cCqc0R1w9XSB31pbe+qt7SjYuTNygNv+dfXyo93l4YsK2CuIrGHWQ09+3JFh1fRss1aVem86CuxYSHPkys2ZwpRXgdXhSVEG9fgnVr/+Um5w2dP//1zPFhNfHzskVhRZ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775551529; c=relaxed/simple; bh=g2eW1nMdaW6VL+m0ASgXi99o9/qf9CWGwcJAU1pHkKA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZkCYA8bik1HcmwrJC4SQK86/B+53wpsAAjxkDTgE1U2RyNgub37XzF9Gp+JMVxr9wV4bcEXt3oy+FLq1RSEg8eVD8YRd6tVpyLLfd3q+3VSt33sap6kIXzpAroGy7i7nDjpgFZyi5/JLpKJrS7vEyQjwCqGhVhYI0t0MZbWaK6s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=mSRMufMr; arc=none smtp.client-ip=91.218.175.186 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="mSRMufMr" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1775551526; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9UhkCR8dMWNhP0Ox118MboKkrzRl7+ZLC3l7hzIYGbw=; b=mSRMufMrKD5MHwzlj0hlL3FCLwpqm0N1g+oIg8gu1rXd46hOCBjFUesnJ0enu7I29SuWes hSmVJYho6iRyP2aXlDg5o6UeEs7wIwl5SYNraIZamUrKl7G9m/sDq7y8CqcSIKxlUSQPmt bD0lTNoToyFU+UORKvBxBlzjGD5WwEU= From: Gang Yan To: mptcp@lists.linux.dev Cc: Gang Yan Subject: [PATCH mptcp-net v3 1/2] mptcp: sync the msk->sndbuf at accept() time Date: Tue, 7 Apr 2026 16:45:17 +0800 Message-ID: <79d5862da1c7db353e27c56a26da78e6dd548659.1775551182.git.yangang@kylinos.cn> In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" From: Gang Yan After an MPTCP connection is established, the sk_sndbuf of client's msk can be updated through 'subflow_finish_connect'. However, the newly accepted msk on the server side has a small sk_sndbuf than msk->first->sk_sndbuf: ''' MPTCP: msk:00000000e55b09db, msk->sndbuf:20480, msk->first->sndbuf:2626560 ''' This patch synchronizes the sk_sndbuf by triggering its update during accept. Fixes: 8005184fd1ca ("mptcp: refactor sndbuf auto-tuning") Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/602 Signed-off-by: Gang Yan Acked-by: Paolo Abeni --- net/mptcp/protocol.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 17b9a8c13ebf..6f6c8cabf74f 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -4252,6 +4252,7 @@ static int mptcp_stream_accept(struct socket *sock, s= truct socket *newsock, =20 mptcp_graft_subflows(newsk); mptcp_rps_record_subflows(msk); + __mptcp_propagate_sndbuf(newsk, mptcp_subflow_tcp_sock(subflow)); =20 /* Do late cleanup for the first subflow as necessary. Also * deal with bad peers not doing a complete shutdown. --=20 2.43.0 From nobody Sat Apr 11 11:22:41 2026 Received: from out-186.mta0.migadu.com (out-186.mta0.migadu.com [91.218.175.186]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EA2821A262D for ; Tue, 7 Apr 2026 08:45:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.186 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775551532; cv=none; b=cAaWGWoAu3BLt2HvpCNWQTBIWFPu+23E9idlWYXedZ8JDJszIeiwvI9l553nPPiPfxWhu2U0ZA0xAKk7damRPU9/LYi9uUKxs1Tqfxr2gipvi6dPjSlc96cR6N7mCnlNy9pleCY7ZPsaC2A6UaMYLk+ShwrzoDIMNDgcM7N/zhA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775551532; c=relaxed/simple; bh=5gDkJ+NZV6QCr84KrWhWLYB8vYmi9pFCygQiXZwtQmw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YxDnO3dzpDtxFZUo2N/vNrsaPxhtBoaJn0jQ0ubYEriwcC6IljYaobD1egtyBuL2nimb82G18ZGSR/xGhNxZ8cvzH8vRsHSr0awLfEdbGBYXDpm4jUo9koaBqyoV6kttUuXu+iCljJFAZOEYgFD6qUsaMBWY2J5Q9VV9pemkqds= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=gpOwolbV; arc=none smtp.client-ip=91.218.175.186 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="gpOwolbV" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1775551529; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ktYcdr5VzISA32vuVY12srE5KkfypM2mb1Rh7oiIUVY=; b=gpOwolbVvfKWxa1ikhC2wHqfBK5THQJVz+PF2BgVqaEeW+JgW5+OdPad8SVIpSHV0G218K 0PsB7IjKdTX9owZyDwugDPed8NXVt0p3P25pb4G5sT6QcXxzFmDvGSDQkz7RC1EPDAdeKF VO6qkePpfSrdRL28MrShpohCGXcOZFM= From: Gang Yan To: mptcp@lists.linux.dev Cc: Gang Yan Subject: [PATCH mptcp-net v3 2/2] selftests: mptcp: add a check for sndbuf of S/C Date: Tue, 7 Apr 2026 16:45:18 +0800 Message-ID: <7cbe2f7bd3191d191277825eebe69b6b5cb7d0be.1775551182.git.yangang@kylinos.cn> In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" From: Gang Yan Add a new chk_sndbuf() helper to diag.sh that extracts the sndbuf (the 'tb' field from 'ss -m' skmem output) for both server and client MPTCP sockets, and verifies they are equal. Without the previous patch, it will fails: ''' 05 all listen sockets [ OK ] 06 after MPC handshake [ OK ] 07 ....chk sndbuf server/client [FAIL] server sndbuf= =3D20480 !=3D client sndbuf=3D2630656 ''' Signed-off-by: Gang Yan --- tools/testing/selftests/net/mptcp/diag.sh | 26 +++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/self= tests/net/mptcp/diag.sh index d847ff1737c3..aa01a1dd0bdd 100755 --- a/tools/testing/selftests/net/mptcp/diag.sh +++ b/tools/testing/selftests/net/mptcp/diag.sh @@ -322,6 +322,31 @@ wait_connected() done } =20 +chk_sndbuf() +{ + local server_sndbuf client_sndbuf msg + local port=3D${1} + + msg=3D"....chk sndbuf server/client" + server_sndbuf=3D$(ss -N "${ns}" -inmHM "sport" "${port}" | grep -oP 'tb\K= \d+') + client_sndbuf=3D$(ss -N "${ns}" -inmHM "dport" "${port}" | grep -oP 'tb\K= \d+') + + mptcp_lib_print_title "${msg}" + if [ -z "${server_sndbuf}" ] || [ -z "${client_sndbuf}" ]; then + mptcp_lib_pr_fail "server sndbuf=3D${server_sndbuf} client sndbuf=3D${cl= ient_sndbuf}" + mptcp_lib_result_fail "${msg}" + ret=3D${KSFT_FAIL} + elif [ "${server_sndbuf}" !=3D "${client_sndbuf}" ]; then + mptcp_lib_pr_fail "server sndbuf=3D${server_sndbuf} !=3D client sndbuf= =3D${client_sndbuf}" + mptcp_lib_result_fail "${msg}" + ret=3D${KSFT_FAIL} + else + mptcp_lib_pr_ok + mptcp_lib_result_pass "${msg}" + fi +} + + trap cleanup EXIT mptcp_lib_ns_init ns =20 @@ -341,6 +366,7 @@ echo "b" | \ 127.0.0.1 >/dev/null & wait_connected $ns 10000 chk_msk_nr 2 "after MPC handshake" +chk_sndbuf 10000 chk_last_time_info 10000 chk_msk_remote_key_nr 2 "....chk remote_key" chk_msk_fallback_nr 0 "....chk no fallback" --=20 2.43.0