Subject: Re: [PATCH iproute2 1/2] mptcp: monitor: also show iface name

From: Matthieu Baerts <[email-masked]>
Date: Wed, 18 Feb 2026 20:03:20 +0100

Hi Stephen,

Thank you for the review!

On 18/02/2026 19:31, Stephen Hemminger wrote:
> On Wed, 11 Feb 2026 13:03:17 +0100
> "Matthieu Baerts (NGI0)" <[email-masked]> wrote:
> 
>> @@ -530,7 +541,7 @@ static int mptcp_monitor_msg(struct rtnl_ctrl_data *ctrl,
>>  	if (tb[MPTCP_ATTR_TIMEOUT])
>>  		printf(" timeout=%u", rta_getattr_u32(tb[MPTCP_ATTR_TIMEOUT]));
>>  	if (tb[MPTCP_ATTR_IF_IDX])
>> -		printf(" ifindex=%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=%u", rta_getattr_u32(tb[MPTCP_ATTR_RESET_REASON]));
>>  	if (tb[MPTCP_ATTR_RESET_FLAGS])
> 
> 
> The whole monitor message output format here is divergent from what other
> iproute2 commands do. If you look at ip monitor there are no '=' signs
> in the output.

Indeed, the output is different from 'ip monitor' (but similar to 'ip
ioam monitor').

> Please fix the whole function.

Doing that would likely break scripts parsing 'ip mptcp monitor' output,
are you sure we should still change this output format?

Please note that compared to 'ip monitor', this commands can print quite
a few attributes, and I guess the '=' signs have been added to improve
the parsing (or even the reading?).

  [         CREATED] token=d8392d7c remid=0 locid=0 saddr6=2001:db8:1234:5678:302e:d9cb:3bca:3d88 daddr6=2001:41d0:a:ffcf:1234:5678:8765:1 sport=57432 dport=443 deny_join_id0
  [     ESTABLISHED] token=d8392d7c remid=0 locid=0 saddr6=2001:db8:1234:5678:302e:d9cb:3bca:3d88 daddr6=2001:41d0:a:ffcf:1234:5678:8765:1 sport=57432 dport=443 deny_join_id0
  [       ANNOUNCED] token=d8392d7c remid=1 daddr4=5.196.67.297 dport=443
  [  SF_ESTABLISHED] token=d8392d7c remid=0 locid=22 saddr6=2001:db8:1234:5678:20e:c6ff:fed9:8d06 daddr6=2001:41d0:a:ffcf:1234:5678:8765:1 sport=38949 dport=443 backup=0 ifindex=23
  [         SF_PRIO] token=d8392d7c remid=0 locid=22 saddr6=2001:db8:1234:5678:20e:c6ff:fed9:8d06 daddr6=2001:41d0:a:ffcf:1234:5678:8765:1 sport=38949 dport=443 backup=1 ifindex=23
  [  SF_ESTABLISHED] token=d8392d7c remid=0 locid=27 saddr6=2001:db8:1234:5678:d892:9a8:b192:3428 daddr6=2001:41d0:a:ffcf:1234:5678:8765:1 sport=53295 dport=443 backup=0 ifindex=5
  [       SF_CLOSED] token=d8392d7c remid=0 locid=22 saddr6=2001:db8:1234:5678:20e:c6ff:fed9:8d06 daddr6=2001:41d0:a:ffcf:1234:5678:8765:1 sport=38949 dport=443 backup=1 ifindex=23 error=104
  [          CLOSED] token=d8392d7c

The event type and the way it is displayed is also specific to 'ip mptcp
monitor'.

> Ideally all of iproute commands should
> support JSON in monitor mode as well. But that is a bigger effort.

I agree with you. I guess we copied the behaviour of 'ip monitor' here.
If there is a JSON support, we can probably more easily change the plain
text output format to force people to use the JSON one if still needed.

Cheers,
Matt
-- 
Sponsored by the NGI0 Core fund.