From nobody Mon Mar 2 06:38:27 2026 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 6733132D7C7; Wed, 11 Feb 2026 12:03:48 +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=1770811428; cv=none; b=fwVm+vfoTAGLzrD01zoOSxs7bkg9iyVExThaGvtVqnTcYxGH5RE3EL0ZOLRrqHlQkTha7NdkiZJpLkMsJsyx8d/LZn7VgghPTzX7nBdY75vGuJAmapVnGfV2VlpxJLD7ju5o05qr2fcYZ+bLCshZ+3Da7528wK6xV5CiGlmkIJA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770811428; c=relaxed/simple; bh=XDl4uyRI0O14eKBe7PPTMxxokEsPBzKMbnEDZzZSecA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=L4yBG0I+2K3wCByARpqh/X9zjXtTGFKnrX3YwwulkA6JuUS4ZjCFz2TP48g80ymcHwoSKVe7Lw9QdhKyw7LmoPUG612TPCd5ZeY6C34Q+JpOq9HdMtp9/YiOlRQHF2yng9t48pEKDLGpFOfvZMSnGlkDe7HHz7A7H2jiR9/hUKE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hx36ENZ5; 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="hx36ENZ5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 47484C2BC86; Wed, 11 Feb 2026 12:03:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770811428; bh=XDl4uyRI0O14eKBe7PPTMxxokEsPBzKMbnEDZzZSecA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=hx36ENZ5dv40votJVVk6WpEBg8btNcBVrvxMp8pL8xRME/D0cUkbobC5aL53Rs+JL U5RzG8e8z+PmRlA1apIpy+HumvJTkogHi3Qhbm9HLcqlbFQ+WeXHvxnqbTYuGj0azo 6hYDSPqEIjLJma80L2PTUGpQeRHLA8yusMK6LAm0jrK26uefXrlwTp726Sq4A9T/5z EsiRJEN/OqPAvyHlaKJh7zBc68OxeC/Rh+0DII3f3j9S2RcU56XwMBA7M6E5f5joWI W81GOijnS2MMja85uDDYVo2w6w5lN/edcLEKbce3GrpmRqtEtkgzAfD5o9nE4kTATb 5otLlNGqrlFqA== From: "Matthieu Baerts (NGI0)" Date: Wed, 11 Feb 2026 13:03:17 +0100 Subject: [PATCH iproute2 1/2] mptcp: monitor: also show iface name 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: <20260211-mptcp-color-v1-1-01832777611d@kernel.org> References: <20260211-mptcp-color-v1-0-01832777611d@kernel.org> In-Reply-To: <20260211-mptcp-color-v1-0-01832777611d@kernel.org> To: Stephen Hemminger , David Ahern Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1535; i=matttbe@kernel.org; h=from:subject:message-id; bh=XDl4uyRI0O14eKBe7PPTMxxokEsPBzKMbnEDZzZSecA=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJ7ChRjP+zb7pj0Qr9tStd5v0WL9E4Z3K03vrRphvmn+ 0rGfav4O0pZGMS4GGTFFFmk2yLzZz6v4i3x8rOAmcPKBDKEgYtTACYSU8rIcDL3io2qzuvYC0kb omt7Tq2u/Ji9SPL2JblK+Sd8i9PyahgZXv7fVXWbvSfZnUVb9gAz39Hmdq243I7SP0EVfo5h3Ar sAA== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Previously, only the interface index was printed. It is helpful to display the interface name, instead of letting the reader doing the translation from the index to the name. Because the index was already displayed before, keep it instead of replacing it, just not to break some possible scripts parsing this output. Signed-off-by: Matthieu Baerts (NGI0) --- ip/ipmptcp.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ip/ipmptcp.c b/ip/ipmptcp.c index acd008f3..5f194aca 100644 --- a/ip/ipmptcp.c +++ b/ip/ipmptcp.c @@ -471,6 +471,17 @@ static void print_addr(const char *key, int af, struct= rtattr *value) printf(" %s=3D%s", key, str); } =20 +static void print_iface(int index) +{ + const char *ifname; + + printf(" ifindex=3D%d", index); + + ifname =3D index ? ll_index_to_name(index) : NULL; + if (ifname) + printf(" dev=3D%s", ifname); +} + static int mptcp_monitor_msg(struct rtnl_ctrl_data *ctrl, struct nlmsghdr *n, void *arg) { @@ -530,7 +541,7 @@ static int mptcp_monitor_msg(struct rtnl_ctrl_data *ctr= l, if (tb[MPTCP_ATTR_TIMEOUT]) printf(" timeout=3D%u", rta_getattr_u32(tb[MPTCP_ATTR_TIMEOUT])); if (tb[MPTCP_ATTR_IF_IDX]) - printf(" ifindex=3D%d", rta_getattr_s32(tb[MPTCP_ATTR_IF_IDX])); + print_iface(rta_getattr_s32(tb[MPTCP_ATTR_IF_IDX])); if (tb[MPTCP_ATTR_RESET_REASON]) printf(" reset_reason=3D%u", rta_getattr_u32(tb[MPTCP_ATTR_RESET_REASON]= )); if (tb[MPTCP_ATTR_RESET_FLAGS]) --=20 2.51.0 From nobody Mon Mar 2 06:38:27 2026 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 A02273254B8; Wed, 11 Feb 2026 12:03:49 +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=1770811429; cv=none; b=Z1q0Bz6VtDmsYi1+CP4VfZVMuVOjF691n6+1COBpUPJRac4oqwND8sPj9p9HO0AMHH2NKFRoxvv0bSPlXpmMjhw0IGPSUipG0hsHPzA5rRr7dYu1j0WnX12wEI89wnFBDUmsB1/etDIzyPWqNWzHt8XTEmX9wBVLqg14BTNdCnc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770811429; c=relaxed/simple; bh=4Y2UCoSWSRuaxLv4DmU6PPatIlxyrlwrGRIRs4c0HWc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DMkD447BJMOIzDP15i/S77cJUPclOMYxAZfwuqIdg7c4IreV4azo02uX29ladpiBAVD6RB+sxbTz9UUjEMvfdAHQbFmDshVn/m8sbYghhgWKi+Wk2FPpCTr+eGumSK2Nc4tlBZ7oMq5/Aoa936INaTqSC2eIq1R03yn8lsMM3/E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=C+ZXjyFN; 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="C+ZXjyFN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 78576C19421; Wed, 11 Feb 2026 12:03:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1770811429; bh=4Y2UCoSWSRuaxLv4DmU6PPatIlxyrlwrGRIRs4c0HWc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=C+ZXjyFNak01Y69qbNBG/+J0ojL8mad6r/CRux0oRe1AM8FshYbXqiPMzQpNlN+fZ wrXjrrMI9nPf313JFIcfufKbkGCJi0Tt6myRMUDACYo6DCTSJFWqCMIuaY9l9+TNEV yCw1rZdijxKlq7HuYvBi2uOBlLxlsOJVUByG3SzqBcN9KxJjc9u+VVK0ttFSyNjSCy wwNqDiU0vSIoDwLVXXbbOhQ5n98W5i22qxk5VpSeYkHTwCk0kzLtNVXVPtkmmUiyOU kxtWLb6lsazctdw7SIbVP5miN9rLAUAVUX0T/pfs/YjKjIyJ2KxdcvMGjD0TV7AwYx XGqia+tjwDyDg== From: "Matthieu Baerts (NGI0)" Date: Wed, 11 Feb 2026 13:03:18 +0100 Subject: [PATCH iproute2 2/2] mptcp: display addr & ifname in color 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: <20260211-mptcp-color-v1-2-01832777611d@kernel.org> References: <20260211-mptcp-color-v1-0-01832777611d@kernel.org> In-Reply-To: <20260211-mptcp-color-v1-0-01832777611d@kernel.org> To: Stephen Hemminger , David Ahern Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, "Matthieu Baerts (NGI0)" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2339; i=matttbe@kernel.org; h=from:subject:message-id; bh=4Y2UCoSWSRuaxLv4DmU6PPatIlxyrlwrGRIRs4c0HWc=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDJ7ChTfuJav6WnLOqw+43Mpb+L2kLNuMmvdu/IWTjOwe vW0S461o5SFQYyLQVZMkUW6LTJ/5vMq3hIvPwuYOaxMIEMYuDgFYCKWExkZVm9xuyzCplFxfmun 9drNuz6Jzpy72lQt3uSw+12zuRr+jIwMF7ZHxzQytzadWLL7w1fZIp6FdyYunro25JmImdX8f7d UmAA= X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Similar to other commands, now the addresses and interface names in "ip mptcp" commands are now displayed in color if supported/requested. That's the only attributes that are used in ipmptcp.c: no MAC or state (UP/DOWN) attributes. Signed-off-by: Matthieu Baerts (NGI0) --- ip/ipmptcp.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/ip/ipmptcp.c b/ip/ipmptcp.c index 5f194aca..ec9ef62a 100644 --- a/ip/ipmptcp.c +++ b/ip/ipmptcp.c @@ -243,8 +243,11 @@ static int print_mptcp_addrinfo(struct rtattr *addrinf= o) addr_attr_type =3D family =3D=3D AF_INET ? MPTCP_PM_ADDR_ATTR_ADDR4 : MPTCP_PM_ADDR_ATTR_ADDR6; if (tb[addr_attr_type]) { - print_string(PRINT_ANY, "address", "%s ", - format_host_rta(family, tb[addr_attr_type])); + print_color_string(PRINT_ANY, + ifa_family_color(family), + "address", + "%s ", + format_host_rta(family, tb[addr_attr_type])); } if (tb[MPTCP_PM_ADDR_ATTR_PORT]) { port =3D rta_getattr_u16(tb[MPTCP_PM_ADDR_ATTR_PORT]); @@ -263,8 +266,11 @@ static int print_mptcp_addrinfo(struct rtattr *addrinf= o) index =3D rta_getattr_s32(tb[MPTCP_PM_ADDR_ATTR_IF_IDX]); ifname =3D index ? ll_index_to_name(index) : NULL; =20 - if (ifname) - print_string(PRINT_ANY, "dev", "dev %s ", ifname); + if (ifname) { + print_string(PRINT_FP, NULL, "dev ", NULL); + print_color_string(PRINT_ANY, COLOR_IFNAME, "dev", + "%s ", ifname); + } } =20 close_json_object(); @@ -467,8 +473,10 @@ static void print_addr(const char *key, int af, struct= rtattr *value) void *data =3D RTA_DATA(value); char str[INET6_ADDRSTRLEN]; =20 - if (inet_ntop(af, data, str, sizeof(str))) - printf(" %s=3D%s", key, str); + if (inet_ntop(af, data, str, sizeof(str))) { + printf(" %s=3D", key); + color_fprintf(stdout, ifa_family_color(af), "%s", str); + } } =20 static void print_iface(int index) @@ -478,8 +486,10 @@ static void print_iface(int index) printf(" ifindex=3D%d", index); =20 ifname =3D index ? ll_index_to_name(index) : NULL; - if (ifname) - printf(" dev=3D%s", ifname); + if (ifname) { + printf(" dev=3D"); + color_fprintf(stdout, COLOR_IFNAME, "%s", ifname); + } } =20 static int mptcp_monitor_msg(struct rtnl_ctrl_data *ctrl, --=20 2.51.0