diff mbox series

[mptcp-next] mptcp: add MIB counter for invalid mapping

Message ID 89666f3fb8f14bbe545f2079794ab78ba24fbbc4.1622720045.git.pabeni@redhat.com (mailing list archive)
State Superseded, archived
Headers show
Series [mptcp-next] mptcp: add MIB counter for invalid mapping | expand

Commit Message

Paolo Abeni June 3, 2021, 1:25 p.m. UTC
Account this exceptional events for better introspection.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
---
 net/mptcp/mib.h     | 1 +
 net/mptcp/subflow.c | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

Comments

Maxim Galaganov June 3, 2021, 2:30 p.m. UTC | #1
03.06.2021 16:25, Paolo Abeni пишет:
> Account this exceptional events for better introspection.
> 
> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> ---
>   net/mptcp/mib.h     | 1 +
>   net/mptcp/subflow.c | 4 +++-
>   2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/net/mptcp/mib.h b/net/mptcp/mib.h
> index 92e56c0cfbdd..193466c9b549 100644
> --- a/net/mptcp/mib.h
> +++ b/net/mptcp/mib.h
> @@ -18,6 +18,7 @@ enum linux_mptcp_mib_field {
>   	MPTCP_MIB_JOINACKMAC,		/* HMAC was wrong on ACK + MP_JOIN */
>   	MPTCP_MIB_DSSNOMATCH,		/* Received a new mapping that did not match the previous one */
>   	MPTCP_MIB_INFINITEMAPRX,	/* Received an infinite mapping */
> +	MPTCP_MIB_DSSTCPMISMATCH,	/* DSS-mapping did not map with TCP's sequence numbers */

Shouldn't there also be a related change to mptcp_snmp_list in mib.c ?

>   	MPTCP_MIB_DATACSUMERR,		/* The data checksum fail */
>   	MPTCP_MIB_OFOQUEUETAIL,	/* Segments inserted into OoO queue tail */
>   	MPTCP_MIB_OFOQUEUE,		/* Segments inserted into OoO queue */
> diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c
> index 259f99b61c35..ccc07cbab867 100644
> --- a/net/mptcp/subflow.c
> +++ b/net/mptcp/subflow.c
> @@ -1046,8 +1046,10 @@ static enum mapping_status get_mapping_status(struct sock *ssk,
>   	/* we revalidate valid mapping on new skb, because we must ensure
>   	 * the current skb is completely covered by the available mapping
>   	 */
> -	if (!validate_mapping(ssk, skb))
> +	if (!validate_mapping(ssk, skb)) {
> +		MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_DSSTCPMISMATCH);
>   		return MAPPING_INVALID;
> +	}
>   
>   	skb_ext_del(skb, SKB_EXT_MPTCP);
>   
>
Paolo Abeni June 3, 2021, 2:41 p.m. UTC | #2
On Thu, 2021-06-03 at 17:30 +0300, Maxim Galaganov wrote:
> 03.06.2021 16:25, Paolo Abeni пишет:
> > Account this exceptional events for better introspection.
> > 
> > Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> > ---
> >   net/mptcp/mib.h     | 1 +
> >   net/mptcp/subflow.c | 4 +++-
> >   2 files changed, 4 insertions(+), 1 deletion(-)
> > 
> > diff --git a/net/mptcp/mib.h b/net/mptcp/mib.h
> > index 92e56c0cfbdd..193466c9b549 100644
> > --- a/net/mptcp/mib.h
> > +++ b/net/mptcp/mib.h
> > @@ -18,6 +18,7 @@ enum linux_mptcp_mib_field {
> >   	MPTCP_MIB_JOINACKMAC,		/* HMAC was wrong on ACK + MP_JOIN */
> >   	MPTCP_MIB_DSSNOMATCH,		/* Received a new mapping that did not match the previous one */
> >   	MPTCP_MIB_INFINITEMAPRX,	/* Received an infinite mapping */
> > +	MPTCP_MIB_DSSTCPMISMATCH,	/* DSS-mapping did not map with TCP's sequence numbers */
> 
> Shouldn't there also be a related change to mptcp_snmp_list in mib.c ?

Indeed! thanks for double checking!

I'll send a v2

/P
diff mbox series

Patch

diff --git a/net/mptcp/mib.h b/net/mptcp/mib.h
index 92e56c0cfbdd..193466c9b549 100644
--- a/net/mptcp/mib.h
+++ b/net/mptcp/mib.h
@@ -18,6 +18,7 @@  enum linux_mptcp_mib_field {
 	MPTCP_MIB_JOINACKMAC,		/* HMAC was wrong on ACK + MP_JOIN */
 	MPTCP_MIB_DSSNOMATCH,		/* Received a new mapping that did not match the previous one */
 	MPTCP_MIB_INFINITEMAPRX,	/* Received an infinite mapping */
+	MPTCP_MIB_DSSTCPMISMATCH,	/* DSS-mapping did not map with TCP's sequence numbers */
 	MPTCP_MIB_DATACSUMERR,		/* The data checksum fail */
 	MPTCP_MIB_OFOQUEUETAIL,	/* Segments inserted into OoO queue tail */
 	MPTCP_MIB_OFOQUEUE,		/* Segments inserted into OoO queue */
diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c
index 259f99b61c35..ccc07cbab867 100644
--- a/net/mptcp/subflow.c
+++ b/net/mptcp/subflow.c
@@ -1046,8 +1046,10 @@  static enum mapping_status get_mapping_status(struct sock *ssk,
 	/* we revalidate valid mapping on new skb, because we must ensure
 	 * the current skb is completely covered by the available mapping
 	 */
-	if (!validate_mapping(ssk, skb))
+	if (!validate_mapping(ssk, skb)) {
+		MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_DSSTCPMISMATCH);
 		return MAPPING_INVALID;
+	}
 
 	skb_ext_del(skb, SKB_EXT_MPTCP);