[PATCH v2 mptcp-net 2/2] mptcp: zero window probe mib

Paolo Abeni posted 2 patches 1 week, 2 days ago
[PATCH v2 mptcp-net 2/2] mptcp: zero window probe mib
Posted by Paolo Abeni 1 week, 2 days ago
Explicitly account for MPTCP-level zero windows probe, to catch
hopefully earlier issues alike the one addressed by the previous
patch.

Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
---
 net/mptcp/mib.c      | 1 +
 net/mptcp/mib.h      | 1 +
 net/mptcp/protocol.c | 1 +
 3 files changed, 3 insertions(+)

diff --git a/net/mptcp/mib.c b/net/mptcp/mib.c
index 6003e47c770a7c..eb4645a9c5ac07 100644
--- a/net/mptcp/mib.c
+++ b/net/mptcp/mib.c
@@ -85,6 +85,7 @@ static const struct snmp_mib mptcp_snmp_list[] = {
 	SNMP_MIB_ITEM("DssFallback", MPTCP_MIB_DSSFALLBACK),
 	SNMP_MIB_ITEM("SimultConnectFallback", MPTCP_MIB_SIMULTCONNFALLBACK),
 	SNMP_MIB_ITEM("FallbackFailed", MPTCP_MIB_FALLBACKFAILED),
+	SNMP_MIB_ITEM("MPTcpWinProbe", MPTCP_MIB_MPTCPWINPROBE),
 };
 
 /* mptcp_mib_alloc - allocate percpu mib counters
diff --git a/net/mptcp/mib.h b/net/mptcp/mib.h
index 309bac6fea3252..f83a113700522e 100644
--- a/net/mptcp/mib.h
+++ b/net/mptcp/mib.h
@@ -88,6 +88,7 @@ enum linux_mptcp_mib_field {
 	MPTCP_MIB_DSSFALLBACK,		/* Bad or missing DSS */
 	MPTCP_MIB_SIMULTCONNFALLBACK,	/* Simultaneous connect */
 	MPTCP_MIB_FALLBACKFAILED,	/* Can't fallback due to msk status */
+	MPTCP_MIB_MPTCPWINPROBE,	/* MPTCP-level zero window probe */
 	__MPTCP_MIB_MAX
 };
 
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c
index a7fa69cf79f106..7f2690f8d92756 100644
--- a/net/mptcp/protocol.c
+++ b/net/mptcp/protocol.c
@@ -1395,6 +1395,7 @@ static int mptcp_sendmsg_frag(struct sock *sk, struct sock *ssk,
 		 mpext->dsn64);
 
 	if (zero_window_probe) {
+		MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_MPTCPWINPROBE);
 		mptcp_subflow_ctx(ssk)->rel_write_seq += copy;
 		mpext->frozen = 1;
 		if (READ_ONCE(msk->csum_enabled))
-- 
2.51.0
Re: [PATCH v2 mptcp-net 2/2] mptcp: zero window probe mib
Posted by Matthieu Baerts 1 week ago
Hi Paolo,

On 22/10/2025 09:39, Paolo Abeni wrote:
> Explicitly account for MPTCP-level zero windows probe, to catch
> hopefully earlier issues alike the one addressed by the previous
> patch.
> 
> Reviewed-by: Mat Martineau <martineau@kernel.org>
> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> ---
>  net/mptcp/mib.c      | 1 +
>  net/mptcp/mib.h      | 1 +
>  net/mptcp/protocol.c | 1 +
>  3 files changed, 3 insertions(+)
> 
> diff --git a/net/mptcp/mib.c b/net/mptcp/mib.c
> index 6003e47c770a7c..eb4645a9c5ac07 100644
> --- a/net/mptcp/mib.c
> +++ b/net/mptcp/mib.c
> @@ -85,6 +85,7 @@ static const struct snmp_mib mptcp_snmp_list[] = {
>  	SNMP_MIB_ITEM("DssFallback", MPTCP_MIB_DSSFALLBACK),
>  	SNMP_MIB_ITEM("SimultConnectFallback", MPTCP_MIB_SIMULTCONNFALLBACK),
>  	SNMP_MIB_ITEM("FallbackFailed", MPTCP_MIB_FALLBACKFAILED),
> +	SNMP_MIB_ITEM("MPTcpWinProbe", MPTCP_MIB_MPTCPWINPROBE),

Detail: I just noticed that after having applied the patch: Do we need
to double the 'MPTCP' keyword here? The full MIB counter name is:

  MPTcpExtMPTcpWinProbe

Maybe just WinProbe is enough? → MPTcpExtWinProbe

Or the second MPTCP using capital letters, similar to "MPTCPRetrans"?

(I can fix that directly in the tree.)

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

Re: [PATCH v2 mptcp-net 2/2] mptcp: zero window probe mib
Posted by Paolo Abeni 1 week ago
On 10/23/25 6:26 PM, Matthieu Baerts wrote:
> On 22/10/2025 09:39, Paolo Abeni wrote:
>> Explicitly account for MPTCP-level zero windows probe, to catch
>> hopefully earlier issues alike the one addressed by the previous
>> patch.
>>
>> Reviewed-by: Mat Martineau <martineau@kernel.org>
>> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
>> ---
>>  net/mptcp/mib.c      | 1 +
>>  net/mptcp/mib.h      | 1 +
>>  net/mptcp/protocol.c | 1 +
>>  3 files changed, 3 insertions(+)
>>
>> diff --git a/net/mptcp/mib.c b/net/mptcp/mib.c
>> index 6003e47c770a7c..eb4645a9c5ac07 100644
>> --- a/net/mptcp/mib.c
>> +++ b/net/mptcp/mib.c
>> @@ -85,6 +85,7 @@ static const struct snmp_mib mptcp_snmp_list[] = {
>>  	SNMP_MIB_ITEM("DssFallback", MPTCP_MIB_DSSFALLBACK),
>>  	SNMP_MIB_ITEM("SimultConnectFallback", MPTCP_MIB_SIMULTCONNFALLBACK),
>>  	SNMP_MIB_ITEM("FallbackFailed", MPTCP_MIB_FALLBACKFAILED),
>> +	SNMP_MIB_ITEM("MPTcpWinProbe", MPTCP_MIB_MPTCPWINPROBE),
> 
> Detail: I just noticed that after having applied the patch: Do we need
> to double the 'MPTCP' keyword here? The full MIB counter name is:
> 
>   MPTcpExtMPTcpWinProbe
> 
> Maybe just WinProbe is enough? → MPTcpExtWinProbe

I'm sorry for the late reply. Yes WinProbe -> MPTcpExtWinProbe is the
correct/intended name, if you could fix that in the tree would be great,
thanks!

Paolo

Re: [PATCH v2 mptcp-net 2/2] mptcp: zero window probe mib
Posted by Matthieu Baerts 1 week ago
Hi Paolo,

On 24/10/2025 09:30, Paolo Abeni wrote:
> On 10/23/25 6:26 PM, Matthieu Baerts wrote:
>> On 22/10/2025 09:39, Paolo Abeni wrote:
>>> Explicitly account for MPTCP-level zero windows probe, to catch
>>> hopefully earlier issues alike the one addressed by the previous
>>> patch.
>>>
>>> Reviewed-by: Mat Martineau <martineau@kernel.org>
>>> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
>>> ---
>>>  net/mptcp/mib.c      | 1 +
>>>  net/mptcp/mib.h      | 1 +
>>>  net/mptcp/protocol.c | 1 +
>>>  3 files changed, 3 insertions(+)
>>>
>>> diff --git a/net/mptcp/mib.c b/net/mptcp/mib.c
>>> index 6003e47c770a7c..eb4645a9c5ac07 100644
>>> --- a/net/mptcp/mib.c
>>> +++ b/net/mptcp/mib.c
>>> @@ -85,6 +85,7 @@ static const struct snmp_mib mptcp_snmp_list[] = {
>>>  	SNMP_MIB_ITEM("DssFallback", MPTCP_MIB_DSSFALLBACK),
>>>  	SNMP_MIB_ITEM("SimultConnectFallback", MPTCP_MIB_SIMULTCONNFALLBACK),
>>>  	SNMP_MIB_ITEM("FallbackFailed", MPTCP_MIB_FALLBACKFAILED),
>>> +	SNMP_MIB_ITEM("MPTcpWinProbe", MPTCP_MIB_MPTCPWINPROBE),
>>
>> Detail: I just noticed that after having applied the patch: Do we need
>> to double the 'MPTCP' keyword here? The full MIB counter name is:
>>
>>   MPTcpExtMPTcpWinProbe
>>
>> Maybe just WinProbe is enough? → MPTcpExtWinProbe
> 
> I'm sorry for the late reply. Yes WinProbe -> MPTcpExtWinProbe is the
> correct/intended name, if you could fix that in the tree would be great,
> thanks!

Thanks! Just did! I also renamed the enum

  MPTCP_MIB_MPTCPWINPROBE → MPTCP_MIB_WINPROBE:

New patches for t/upstream-net and t/upstream:
- 9525948cb5cc: Squash to "mptcp: zero window probe mib"
- Results: f6c0967d41d1..628a66ff3d17 (export-net)
- Results: 8416614a1e27..6354d0b32825 (export)

Tests are now in progress:

- export-net:
https://github.com/multipath-tcp/mptcp_net-next/commit/60ce52cf453b5182b993d2420d01422355ebbd67/checks
- export:
https://github.com/multipath-tcp/mptcp_net-next/commit/a76c4725014b6c51385d301f1027a7891714a6bb/checks

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