From nobody Thu Nov 27 12:38:12 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 8D2CB311C3F for ; Wed, 12 Nov 2025 16:25:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762964721; cv=none; b=SqTVE+aXIQctW6hRi6jhwPtEZ7DQb877+7E7yYQTN9ScEQDEr8tbKdhsmAiAeyabIFC0w8qU6PE8EmrkBkx2tCtFvPgyFfajXEuG9aG63InMjfiLjdw6UsB2dbBS42uUolKmLvb6DlyIEctKn/7p0lSGqM/oPDjUejC8hDycIQA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762964721; c=relaxed/simple; bh=C/4LF05n4+oEdELeQ5klZ3Zm0v1aNAXbUWk4Z8AZxn8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aLeiBkGpMU/Zz4qQuJH2rEqf3AlA5Db70Q6s5HJ7JkVh2BVe1h8+FPtWvwalcVBt76ky/P5J54CTZ9iARaXY0/pzrgLExlVjsBrurnhUnVnivEJa5/HbMFN+hsV7e6kx08A49bPVUHpUzB/1HGGp+NSz3rLPdQuHY8owvQCVvzA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hWX7TNtz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hWX7TNtz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B0495C19421; Wed, 12 Nov 2025 16:25:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762964721; bh=C/4LF05n4+oEdELeQ5klZ3Zm0v1aNAXbUWk4Z8AZxn8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=hWX7TNtzOWe48++zw4sUqfGE3APw2laMRHFoIbWnTmwcGcrvRB6ueD+BdNNgNP3Na USxwJuY6HnAqTYdV7wL2J8Z0u1AZQwsW5yhLs/K1GcAUlFhcYMeKfHTRNOfVyfSHqw o0hZgO7D894oL2ke6jWSwf9QT6bD7QnMITjL5ayX5s6g4VRwxhapagy0fVskGHg46G MIP7t/MFQGaM/Ch6YUBqbzTg1EocEDbVM+upD1PMZQNUr4437Pj2WLueGVRlvaUVRa 7fEqBD+lr0GInhOm0wbt41y+r546eeuUiSqrljBow3DmQVcJG0kZdUG0XT8J4EQ8t5 zvoB5yDJIUr7w== From: "Matthieu Baerts (NGI0)" Date: Wed, 12 Nov 2025 17:24:44 +0100 Subject: [PATCH iproute-mptcp 1/6] MAINTAINERS: add entry for mptcp Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251112-laminar-v1-1-e23dbf584aa4@kernel.org> References: <20251112-laminar-v1-0-e23dbf584aa4@kernel.org> In-Reply-To: <20251112-laminar-v1-0-e23dbf584aa4@kernel.org> To: MPTCP Linux Cc: "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=742; i=matttbe@kernel.org; h=from:subject:message-id; bh=C/4LF05n4+oEdELeQ5klZ3Zm0v1aNAXbUWk4Z8AZxn8=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJFtrz4ludYmBupxWd/PnFmp4l0d7fWg3uaJo+0Ti9V7 27i4M/rKGVhEONikBVTZJFui8yf+byKt8TLzwJmDisTyBAGLk4BmEh3PSPDur27NmTVB3jUX5Pa v3ba/Wnu63d8nnLz9oJki4CEm/emZDD8U9DruyF5csdbLdX6t5mHmVNjbL/tVd311y7ilsihzxd +8QIA X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Add Matthieu as main maintainer, but also the MPTCP Linux mailing list to reach more people interested by MPTCP when submitting patches on this subject. Signed-off-by: Matthieu Baerts (NGI0) --- MAINTAINERS | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 51833ec1..2d13c752 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -42,6 +42,13 @@ devlink M: Jiri Pirko F: devlink/* =20 +Multipath TCP - mptcp +M: Matthieu Baerts +L: mptcp@lists.linux.dev +F: ip/ipmptcp.c +F: man/man8/ip-mptcp.8 +K: mptcp + netkit M: Daniel Borkmann M: Nikolay Aleksandrov --=20 2.51.0 From nobody Thu Nov 27 12:38:12 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 713DD311C3F for ; Wed, 12 Nov 2025 16:25:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762964722; cv=none; b=HU0XY8+2+z/Cqsq9PSA+/3FC74ctvItMAOokYnltxyRwP1ckGZj5ZAO3dDFBP1KhUEHoZq3dprmPVepxHLZXPiCsfWKkOsCydD+tDwCQO5jHfOS0KIAAvvfUP444U7eYGjRJ3v4Mh/38NsUaISNyVAOy8gHoS3eoCbT0ZlFPRFo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762964722; c=relaxed/simple; bh=fti7cZNya1a374oe6jjffz6LN7YFMKsrRH1/Osl0Cgk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AU8HFwK5g5mukO30GKh0O6prfSlN0+73u0Zak5nQJO/fQx1WfhGXO4D7Rp7qfYhqpW8GjAcpLV29mqOS8g6jhAySePhziP0xju7i/rm/20mQAc1Z3ZH087OZC6JBoHgPq+cmWBDK6RmHnhVyU0137A/EojI+9xp0FdkyJ0FkA7M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=f6fI1w9n; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="f6fI1w9n" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8BB06C4AF09; Wed, 12 Nov 2025 16:25:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762964722; bh=fti7cZNya1a374oe6jjffz6LN7YFMKsrRH1/Osl0Cgk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=f6fI1w9nBNXgUNX1Z5OjS//oa+/hhn9EcdYN6qHb9/n+Vqh+zVb/FZOCkh6dZPeoi GNCIVFvoe3w55fbVSBLmZeOZf7enx1dsQx9BHLLMX/bqjd+8qS9F+Wn/+G5PzalJUY 6DWWS0lnzcMwHj8T7Ky+ijI0NfAIWkkhJurZsRYU0qYExppL3U0gfkbSLAZy+yBg11 ExKS7wcFkQZRPSjji/D+b2FbzwfwETRmWNV+XhDjSJQFok4guLpqusnYiNr3XQy/e0 6tndh3zcVKjnn9U5HiDmfJG3UvI6BMAvTjldpROqOH559Kqwt3lCDJ5XJ4sUKEOR7X C84JAtvsl1WGg== From: "Matthieu Baerts (NGI0)" Date: Wed, 12 Nov 2025 17:24:45 +0100 Subject: [PATCH iproute-mptcp 2/6] man: mptcp: fix minor typos Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251112-laminar-v1-2-e23dbf584aa4@kernel.org> References: <20251112-laminar-v1-0-e23dbf584aa4@kernel.org> In-Reply-To: <20251112-laminar-v1-0-e23dbf584aa4@kernel.org> To: MPTCP Linux Cc: "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1189; i=matttbe@kernel.org; h=from:subject:message-id; bh=fti7cZNya1a374oe6jjffz6LN7YFMKsrRH1/Osl0Cgk=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJFtryMarA+XKRo5bh/97SjnZrXPz6/8D3E+UG18On5n qon3++421HKwiDGxSArpsgi3RaZP/N5FW+Jl58FzBxWJpAhDFycAjCRCW8YGeY8uaIhWf3ok/As 3u7MnB3HK5bMzzufcOfqKtmQI95BtWqMDCcjP+z/5DtNVmv1HXuuGaqyQR4Tws71/H+0+pmMR5t oGxsA X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 - 'signaled' -> 'signalled' - 'a implicit' -> 'an implicit' Signed-off-by: Matthieu Baerts (NGI0) --- man/man8/ip-mptcp.8 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/man/man8/ip-mptcp.8 b/man/man8/ip-mptcp.8 index e4a55f6c..500dc671 100644 --- a/man/man8/ip-mptcp.8 +++ b/man/man8/ip-mptcp.8 @@ -156,7 +156,7 @@ ID. =20 .TP .BR signal -The endpoint will be announced/signaled to each peer via an MPTCP ADD_ADDR +The endpoint will be announced/signalled to each peer via an MPTCP ADD_ADDR sub-option. Typically, a server would be responsible for this. Upon recept= ion of an ADD_ADDR sub-option, the other peer, typically the client side, can try= to create additional subflows, see @@ -207,7 +207,7 @@ is then optional. .BR implicit In some scenarios, an MPTCP .BR subflow -can use a local address mapped by a implicit endpoint created by the +can use a local address mapped by an implicit endpoint created by the in-kernel path manager. Once set, the implicit flag cannot be removed, but other flags can be added to the endpoint. Implicit endpoints cannot be created from user-space. --=20 2.51.0 From nobody Thu Nov 27 12:38:12 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 65B8133B6C7 for ; Wed, 12 Nov 2025 16:25:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762964723; cv=none; b=pQQUD2v0R5pt8bu1UsA5y5eJod1CQN9tGiFnRMQo7eoClaqhtpwrrd6igZ7FQ+Gi1mpwzTuNkelJ5EsNZNfZAW3apeHM0ZkWztzKJkxnmdvLY1nHbOn6LxlwpSKVnC3m8bAc1u+2eshhNjagBMUB1WNF9BN5N3c0ZpzgTD1g6PE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762964723; c=relaxed/simple; bh=wyCRr6vLc0SnEfJ47n3ZzKCFP0ZUNFZxmEKtHCDYEnk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=X9b3Qgck1m4EaI3pbk7C//j4J3eujptCwDd8O08FPpCKvhEMRnmWitzbshadSKP/qnb1lkUdO6vLO+UGZlKn+qECtye/yP5SJKUkbPYH0CVFJytJ14N/z46vfzT63GiWR9IEhfippMgiUpD+3HK7Pw8UjyFaU4K/0O3p/IecMYU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=m3qHE3g7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="m3qHE3g7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 73E9BC16AAE; Wed, 12 Nov 2025 16:25:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762964722; bh=wyCRr6vLc0SnEfJ47n3ZzKCFP0ZUNFZxmEKtHCDYEnk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=m3qHE3g706eMkvMqIkpl22NMakWMY6so6ubtRpRfRvyHrq7uhA5IzGWqDnbEpOzHX YTMalc+HVWQeN3dIyhPm2zfs0On3k1VgJbHZ1DQuMnt72fCMEKD/4bdH4gS6w/xzWj VHlKFZ1mLf7B71ikONpO3aLUz8+NPHMS+VljcOkmHD6HvHB3VrfmbgSjE97BOOOz/h YEWeqLWsBJmRdopVPZFUM3Mq8Lf6i4Lbk9QEGvO98UqY3bDn01tsxrCu8EL2dtI3mQ cIhexGOxdtqUeIACZEapMI9kQjEPHSTjIQ+zhxHKncfSvLzWsALdkwqstPAhNFYPA7 0QEj6RAXNX9zQ== From: "Matthieu Baerts (NGI0)" Date: Wed, 12 Nov 2025 17:24:46 +0100 Subject: [PATCH iproute-mptcp 3/6] mptcp: add 'laminar' endpoint support Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251112-laminar-v1-3-e23dbf584aa4@kernel.org> References: <20251112-laminar-v1-0-e23dbf584aa4@kernel.org> In-Reply-To: <20251112-laminar-v1-0-e23dbf584aa4@kernel.org> To: MPTCP Linux Cc: "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3215; i=matttbe@kernel.org; h=from:subject:message-id; bh=wyCRr6vLc0SnEfJ47n3ZzKCFP0ZUNFZxmEKtHCDYEnk=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJFtrxed6Njm9NqqcbdDydp6ZzilJZl3h+5Ri1I4Mfru u6me3dudJSyMIhxMciKKbJIt0Xmz3xexVvi5WcBM4eVCWQIAxenAEykOJqRYf3SjfZXvxjLmgne OdIQvco3dIujGcdWZdHDWzwFd7Wv+sbwv7hCOGFWE0fA1MOPSl8oducq6AvoNQafL/zqE6sVOiO UEwA= X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 This new endpoint type has been recently added to the kernel in v6.18 [1]. It will be used to create new subflows from the associated address to additional addresses announced by the other peer. This will be done if allowed by the MPTCP limits, and if the associated address is not already being used by another subflow from the same MPTCP connection. Note that the fullmesh flag takes precedence over the laminar one. The support of the new flag is easy: simply by adding it in the mptcp_addr_flag_names array. The usage menu and the manual now references the new endpoint type. The new corresponding counter has also been added in ss. Link: https://git.kernel.org/torvalds/c/539f6b9de39e [1] Signed-off-by: Matthieu Baerts (NGI0) --- ip/ipmptcp.c | 3 ++- man/man8/ip-mptcp.8 | 13 +++++++++++++ misc/ss.c | 2 ++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ip/ipmptcp.c b/ip/ipmptcp.c index 2415cac8..2908b69e 100644 --- a/ip/ipmptcp.c +++ b/ip/ipmptcp.c @@ -32,7 +32,7 @@ static void usage(void) " ip mptcp limits show\n" " ip mptcp monitor\n" "FLAG-LIST :=3D [ FLAG-LIST ] FLAG\n" - "FLAG :=3D [ signal | subflow | backup | fullmesh ]\n" + "FLAG :=3D [ signal | subflow | laminar | backup | fullmesh ]\n" "CHANGE-OPT :=3D [ backup | nobackup | fullmesh | nofullmesh ]\n"); =20 exit(-1); @@ -59,6 +59,7 @@ static const struct { { "backup", MPTCP_PM_ADDR_FLAG_BACKUP }, { "fullmesh", MPTCP_PM_ADDR_FLAG_FULLMESH }, { "implicit", MPTCP_PM_ADDR_FLAG_IMPLICIT }, + { "laminar", MPTCP_PM_ADDR_FLAG_LAMINAR }, { "nobackup", MPTCP_PM_ADDR_FLAG_NONE }, { "nofullmesh", MPTCP_PM_ADDR_FLAG_NONE } }; diff --git a/man/man8/ip-mptcp.8 b/man/man8/ip-mptcp.8 index 500dc671..d821f714 100644 --- a/man/man8/ip-mptcp.8 +++ b/man/man8/ip-mptcp.8 @@ -66,6 +66,8 @@ ip-mptcp \- MPTCP path manager configuration .RB "|" .B subflow .RB "|" +.B laminar +.RB "|" .B backup .RB "|" .B fullmesh @@ -169,6 +171,17 @@ path manager will try to create an additional subflow = using this endpoint as the source address after the MPTCP connection is established. A client = would typically do this. =20 +.TP +.BR laminar +The endpoint will be used to create new subflows from the associated addre= ss to +additional addresses announced by the other peer. This will be done if all= owed +by the MPTCP limits, and if the associated address is not already being us= ed by +another subflow from the same MPTCP connection. Note that the +.BR fullmesh +flag takes precedence over the +.BR laminar +one. + .TP .BR backup If this is a diff --git a/misc/ss.c b/misc/ss.c index 989e168a..b3566f6b 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -3308,6 +3308,8 @@ static void mptcp_stats_print(struct mptcp_info *s) out(" bytes_acked:%llu", s->mptcpi_bytes_acked); if (s->mptcpi_subflows_total) out(" subflows_total:%u", s->mptcpi_subflows_total); + if (s->mptcpi_endp_laminar_max) + out(" endp_laminar_max:%u", s->mptcpi_endp_laminar_max); if (s->mptcpi_last_data_sent) out(" last_data_sent:%u", s->mptcpi_last_data_sent); if (s->mptcpi_last_data_recv) --=20 2.51.0 From nobody Thu Nov 27 12:38:12 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 DA86633B6C7 for ; Wed, 12 Nov 2025 16:25:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762964723; cv=none; b=aZqnQ6RO6wt+YTy0XNh97ir9U7ftvnjG1u1Y5CwWmpsdkStNBrRKmL4WAEQSRBX+t3eS7VZU6j3rcdbnxJ2gE+TvZqxxrlgtD6GEuwommppJIsbXTZmh9NXRZJeZF1aJiyLNInVbprBDNKSdBBLM4v+LAoKKoPIRZpnRqMPmj7w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762964723; c=relaxed/simple; bh=KlrG62Sp7sx/d6n44I8YUk3pJ2OuRZbUh78BUdQ+B1M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=k5cVWtSKILUMoixG4qs3e5rBmGfDyY+ifL7sAMTq4JJcAhNV/c6TnWiAFNjW/4++Et76vSFKb0KLvm30anGtXqNCRggTXjC5Gly6AOiqdyH8l4EAXEuMDqbpkjgLMo7Xor3reM4cX4IAb9e4hxmKEcxeviF0kba9qSG5DCPdLqQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Qg3i5Bgi; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Qg3i5Bgi" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4E276C4CEF8; Wed, 12 Nov 2025 16:25:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762964723; bh=KlrG62Sp7sx/d6n44I8YUk3pJ2OuRZbUh78BUdQ+B1M=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Qg3i5BgiLgQLC3nq8ET963WRqUKHlvMHyeuXMflD+q/ar1WArPqDeFOGzuxRdAZI2 DM7l4+5g7Ybk/PA8W4deyauppLmqeZexoqGkFaYJ1GCCxGIXaBE5hMOac+ZhthTW6n bHJlV2WHS9xGRvT64bzTL5qh10ATD9LaS+Tb17gHgqXtX0ZOkSlmf5pLAOfT9o2VjD lfX1OhkzgfQQ3PMtOr0JAU3uyqcf/dzosKFM2R8ij88kAXploCWXSnYlo3WSJXagFE E/lBVJmpY4ON4tNPXUJwWGJirXdEdkDIGiuTZp4evNAw7NxaiDpvrRfbSROsEuaPHu L1WP/KG5+dCVA== From: "Matthieu Baerts (NGI0)" Date: Wed, 12 Nov 2025 17:24:47 +0100 Subject: [PATCH iproute-mptcp 4/6] mptcp: monitor: add 'server side' info Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251112-laminar-v1-4-e23dbf584aa4@kernel.org> References: <20251112-laminar-v1-0-e23dbf584aa4@kernel.org> In-Reply-To: <20251112-laminar-v1-0-e23dbf584aa4@kernel.org> To: MPTCP Linux Cc: "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1096; i=matttbe@kernel.org; h=from:subject:message-id; bh=KlrG62Sp7sx/d6n44I8YUk3pJ2OuRZbUh78BUdQ+B1M=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJFtrwxliqKcpz9jo/n7rUw7TgRY4O7MZ8X/I13b1J+0 7zyZlx7RykLgxgXg6yYIot0W2T+zOdVvCVefhYwc1iZQIYwcHEKwERElzD8r7rt4X3wo9LmM1wP 7uTnOPa9Zvv2SpHdwOSh0LaNx8yvrWH4n34wcdGVJ3c7E3w/WgsuO5M189imFQa7tt8+O7NB+cH R37wA X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 This info has been added a while ago in the kernel [1], but it was not displayed in 'ip monitor'. Now, 'server_side' is displayed if the attribute is defined and set to true. It looks better to do that instead of showing server_side=3D0. Note that from v6.18 [2], this attribute is only defined if it is set to true. Link: https://git.kernel.org/torvalds/c/41b3c69bf941 [1] Link: https://git.kernel.org/torvalds/c/c9809f03c158 [2] Signed-off-by: Matthieu Baerts (NGI0) --- ip/ipmptcp.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ip/ipmptcp.c b/ip/ipmptcp.c index 2908b69e..aaacc0a5 100644 --- a/ip/ipmptcp.c +++ b/ip/ipmptcp.c @@ -536,6 +536,8 @@ static int mptcp_monitor_msg(struct rtnl_ctrl_data *ctr= l, printf(" reset_reason=3D%u", rta_getattr_u32(tb[MPTCP_ATTR_RESET_REASON]= )); if (tb[MPTCP_ATTR_RESET_FLAGS]) printf(" reset_flags=3D0x%x", rta_getattr_u32(tb[MPTCP_ATTR_RESET_FLAGS]= )); + if (tb[MPTCP_ATTR_SERVER_SIDE] && rta_getattr_u8(tb[MPTCP_ATTR_SERVER_SID= E])) + printf(" server_side"); =20 puts(""); out: --=20 2.51.0 From nobody Thu Nov 27 12:38:12 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 BF5B133AD9A for ; Wed, 12 Nov 2025 16:25:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762964724; cv=none; b=VT+sKhXF8691fd9pEH/NQthSgAFBlbsUV9b88lbDml+Yv/PQEXx2Zz2S6Sd5yzOgJVT8xnmHi5plb23h42XUmSHEluWMfe+JbwXS/EF0qlNac4SjxYglnpQoOsDVvumUg3AxDpLvNlI28Cjos+wukwgLTfk5GpKp1f+cDcoBr04= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762964724; c=relaxed/simple; bh=bOQsq2XrOhtU0EBb/p1+2MsayISWWKNP/oCn0/irc+4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QCfU3PQ8IdX7F44dIVKDFej44hgVWNd9tz6gNwUCHCrmAAfIIt43K3AKx/OOR/k1gn8FmmalbhrVLc52LMNWcawGDqEbAzh/tmz802HMwfOJztjUaV8H2NUXZHZ7EuXYqOCnh30QPbj2vxXQa1KuyWjgTrTzU9Iaec153v8kgXM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FdiAEzit; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FdiAEzit" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2BA8CC19422; Wed, 12 Nov 2025 16:25:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762964724; bh=bOQsq2XrOhtU0EBb/p1+2MsayISWWKNP/oCn0/irc+4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=FdiAEzit1vc4SEfPsRJhkuFalgcOU1gT38qJ9uSHDZn8eY5XRs0FErM256qDmrYX/ 9PJBX/VpQP/NUwqAS8HoeqM8E344gfM71Pt6vueFlwmvIeQwGJ0QufxdCUdKnVxFAC o/rOmdKUCMu1DFMthR66Dovr/789llY7Vcq7aAUqySht3QkIMKvdwvRBFqSiLpQc+A 5pjjVCMkZKGzFpzH3w4iZYOWmO2oqqxP+rJm/3SNSCkh5430B1RMYVICd/UKsDHrcj vDE0MKfCCEp3Bk98bNV03hECzdBPbHPNcvQhqvWKet7hU4pegU2YIZyaNtK0w/DgTi IzmiIbFy+0oHw== From: "Matthieu Baerts (NGI0)" Date: Wed, 12 Nov 2025 17:24:48 +0100 Subject: [PATCH iproute-mptcp 5/6] mptcp: monitor: add 'deny join id0' info Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251112-laminar-v1-5-e23dbf584aa4@kernel.org> References: <20251112-laminar-v1-0-e23dbf584aa4@kernel.org> In-Reply-To: <20251112-laminar-v1-0-e23dbf584aa4@kernel.org> To: MPTCP Linux Cc: "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2296; i=matttbe@kernel.org; h=from:subject:message-id; bh=bOQsq2XrOhtU0EBb/p1+2MsayISWWKNP/oCn0/irc+4=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJFtrw1mrq5tdziZ7Cq4rz1tVvnZryoPRs1M2RZX/irB 35Hj2e+7ihlYRDjYpAVU2SRbovMn/m8irfEy88CZg4rE8gQBi5OAZjI5wyGvzK3Jba43BCLz/8c /3ZxrLTvqWunt+RN5z4/SyJxSjSjszcjwwf1lXvudWrsYo30cudJ/19oeeBCbuGMeSYfz0y5Nmv peXYA X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Until recently, the 'flags' attribute was not used. This has recently been changed with the introduction of the 'deny_join_id0' flag [1]. This flag is set when a connection is created and the other peer set the 'C' flag in the MP_CAPABLE packets [2]. This flag can be set to tell the other side that the peer will not accept extra subflows requests sent to its initial IP address and port: typically set by a server behind a legacy Layer 4 load balancer. Now, when this flag is set, "deny_join_id0" will be printed instead of "flags=3D1". Unknown remaining flags will be printed in hexadecimal at the end, e.g. "flags=3D0x2". Link: https://git.kernel.org/torvalds/c/2293c57484ae [1] Link: https://datatracker.ietf.org/doc/html/rfc8684#section-3.1-20.6 [2] Signed-off-by: Matthieu Baerts (NGI0) --- ip/ipmptcp.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ip/ipmptcp.c b/ip/ipmptcp.c index aaacc0a5..01f6906f 100644 --- a/ip/ipmptcp.c +++ b/ip/ipmptcp.c @@ -477,6 +477,7 @@ static int mptcp_monitor_msg(struct rtnl_ctrl_data *ctr= l, const struct genlmsghdr *ghdr =3D NLMSG_DATA(n); struct rtattr *tb[MPTCP_ATTR_MAX + 1]; int len =3D n->nlmsg_len; + __u16 flags =3D 0; =20 len -=3D NLMSG_LENGTH(GENL_HDRLEN); if (len < 0) @@ -526,8 +527,6 @@ static int mptcp_monitor_msg(struct rtnl_ctrl_data *ctr= l, printf(" backup=3D%u", rta_getattr_u8(tb[MPTCP_ATTR_BACKUP])); if (tb[MPTCP_ATTR_ERROR]) printf(" error=3D%u", rta_getattr_u8(tb[MPTCP_ATTR_ERROR])); - if (tb[MPTCP_ATTR_FLAGS]) - printf(" flags=3D%x", rta_getattr_u16(tb[MPTCP_ATTR_FLAGS])); if (tb[MPTCP_ATTR_TIMEOUT]) printf(" timeout=3D%u", rta_getattr_u32(tb[MPTCP_ATTR_TIMEOUT])); if (tb[MPTCP_ATTR_IF_IDX]) @@ -539,6 +538,15 @@ static int mptcp_monitor_msg(struct rtnl_ctrl_data *ct= rl, if (tb[MPTCP_ATTR_SERVER_SIDE] && rta_getattr_u8(tb[MPTCP_ATTR_SERVER_SID= E])) printf(" server_side"); =20 + if (tb[MPTCP_ATTR_FLAGS]) + flags =3D rta_getattr_u16(tb[MPTCP_ATTR_FLAGS]); + if (flags & MPTCP_PM_EV_FLAG_DENY_JOIN_ID0) { + flags &=3D ~MPTCP_PM_EV_FLAG_DENY_JOIN_ID0; + printf(" deny_join_id0"); + } + if (flags) /* remaining bits */ + printf(" flags=3D0x%x", flags); + puts(""); out: fflush(stdout); --=20 2.51.0 From nobody Thu Nov 27 12:38:12 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 92A42311C3F for ; Wed, 12 Nov 2025 16:25:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762964725; cv=none; b=BnTfACkCJWZZtP7/iIHeuTvkcbli2wyn0l/WffDD4ZwEL9HDEpzG+owijqkB7USLVIx0S7w9N7o2kM8CbT9xEUypnGhxy7D2KMTJ8L4/4d+ddOXJ9gFGZzgLp2Pj7NYBL/3fB/604pDzT6VRzMIMG4OhUQ2uWiF6cqRGO2/7Yz0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762964725; c=relaxed/simple; bh=Ijk5pe9mMQ9Z2WSXWd9d09O4dX0EBa2qbR1Hznf3iSQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=k0vrY2sVPCvwoHHTi15ZBnWedcd4UHjhIaks1WYpBytle7lwFn3Mv3uYidM+z35He9wXv+N3ROYniDIZnujROf9OLgXTz6p1i1K0ZHztP6vF0NHF8XAJvwyaBu0I5fdt5bC23Caeo1tCjUvGkXie8X4Isb1koUj3oQCJFOjPMBU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KGBNNCLT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KGBNNCLT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 05F88C113D0; Wed, 12 Nov 2025 16:25:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762964725; bh=Ijk5pe9mMQ9Z2WSXWd9d09O4dX0EBa2qbR1Hznf3iSQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=KGBNNCLTAaONQ/sw9fsKR/x4JEnZ0XgvF8gVys69G2UpIENt7twCuIQ9NvnfhaMOP UjrEie9mFYeJbiP9cZBxvPSEKX8oHn6VE9QIziro0KJ5AsFxC/f/HWrxcEE/RptvWT oXDwLbPZvbiijUdeDw+gscrmA2TIu8jN9nwGVyf4j6Jqa/LU2Wl1B14gOd+dow64yq rD7YXGCJspUapxTVVbIrduEZkcJmdW497S1h6PhK/4La3tebJYVGoMtOfAnyIO+mAU CguQBZfbngGOmaFnFVOhr9NpPFaZ3b0jWeisbBXiFEY+Oovrg7zqA5BzJ8Tm4iWOxB IkVttBcKMwdqA== From: "Matthieu Baerts (NGI0)" Date: Wed, 12 Nov 2025 17:24:49 +0100 Subject: [PATCH iproute-mptcp 6/6] mptcp: monitor: support 'server side' as a flag Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251112-laminar-v1-6-e23dbf584aa4@kernel.org> References: <20251112-laminar-v1-0-e23dbf584aa4@kernel.org> In-Reply-To: <20251112-laminar-v1-0-e23dbf584aa4@kernel.org> To: MPTCP Linux Cc: "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1416; i=matttbe@kernel.org; h=from:subject:message-id; bh=Ijk5pe9mMQ9Z2WSXWd9d09O4dX0EBa2qbR1Hznf3iSQ=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJFtrw/8rBk16JLonumeMqZ7N/7TCv0x9uG52bxN0t/b ehtXSDW0FHKwiDGxSArpsgi3RaZP/N5FW+Jl58FzBxWJpAhDFycAjCRmXWMDFtrU6ZMYImNM9OS 4We4/HmGyvPWt1F8Nof+7My6ph/2ZgnDf6dG0/VnfvO/ZXPeZfaBv+HYHd/GJCXxDbtn5KbIiD6 wZgEA X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 In the v6.18 kernel, the 'server side' attribute has been deprecated [1] in favour of the 'server side' flag [2]. Support both: first checking the new flag, then the old attribute to continue supporting older kernels. Link: https://git.kernel.org/torvalds/c/c8bc168f5f3d [1] Link: https://git.kernel.org/torvalds/c/3d7ae91107b8 [2] Signed-off-by: Matthieu Baerts (NGI0) --- ip/ipmptcp.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ip/ipmptcp.c b/ip/ipmptcp.c index 01f6906f..acd008f3 100644 --- a/ip/ipmptcp.c +++ b/ip/ipmptcp.c @@ -535,11 +535,14 @@ static int mptcp_monitor_msg(struct rtnl_ctrl_data *c= trl, printf(" reset_reason=3D%u", rta_getattr_u32(tb[MPTCP_ATTR_RESET_REASON]= )); if (tb[MPTCP_ATTR_RESET_FLAGS]) printf(" reset_flags=3D0x%x", rta_getattr_u32(tb[MPTCP_ATTR_RESET_FLAGS]= )); - if (tb[MPTCP_ATTR_SERVER_SIDE] && rta_getattr_u8(tb[MPTCP_ATTR_SERVER_SID= E])) - printf(" server_side"); =20 if (tb[MPTCP_ATTR_FLAGS]) flags =3D rta_getattr_u16(tb[MPTCP_ATTR_FLAGS]); + if ((flags & MPTCP_PM_EV_FLAG_SERVER_SIDE) || + (tb[MPTCP_ATTR_SERVER_SIDE] && rta_getattr_u8(tb[MPTCP_ATTR_SERVER_SI= DE]))) { + flags &=3D ~MPTCP_PM_EV_FLAG_SERVER_SIDE; + printf(" server_side"); + } if (flags & MPTCP_PM_EV_FLAG_DENY_JOIN_ID0) { flags &=3D ~MPTCP_PM_EV_FLAG_DENY_JOIN_ID0; printf(" deny_join_id0"); --=20 2.51.0