2022-03-29 08:45:13

by Jamie Bainbridge

[permalink] [raw]
Subject: [PATCH net] sctp: count singleton chunks in assoc user stats

singleton chunks (INIT, and less importantly SHUTDOWN and SHUTDOWN-
COMPLETE) are not counted in SCTP_GET_ASOC_STATS "sas_octrlchunks"
counter available to the assoc owner.

INIT (and the SHUTDOWN chunks) are control chunks so they should be
counted as such.

Add counting of singleton chunks so they are properly accounted for.

Signed-off-by: Jamie Bainbridge <[email protected]>
---
net/sctp/outqueue.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c
index a18609f608fb786b2532a4febbd72a9737ab906c..e2d7c955f07c80da17c7525159aaf8a053432ae3 100644
--- a/net/sctp/outqueue.c
+++ b/net/sctp/outqueue.c
@@ -914,6 +914,7 @@ static void sctp_outq_flush_ctrl(struct sctp_flush_ctx *ctx)
ctx->asoc->base.sk->sk_err = -error;
return;
}
+ ctx->asoc->stats.octrlchunks++;
break;

case SCTP_CID_ABORT:
--
2.35.1


2022-03-29 15:22:20

by Paolo Abeni

[permalink] [raw]
Subject: Re: [PATCH net] sctp: count singleton chunks in assoc user stats

On Tue, 2022-03-29 at 10:00 -0300, Marcelo Ricardo Leitner wrote:
> On Tue, Mar 29, 2022 at 01:13:36PM +1000, Jamie Bainbridge wrote:
> > singleton chunks (INIT, and less importantly SHUTDOWN and SHUTDOWN-
> > COMPLETE) are not counted in SCTP_GET_ASOC_STATS "sas_octrlchunks"
> > counter available to the assoc owner.
> >
> > INIT (and the SHUTDOWN chunks) are control chunks so they should be
> > counted as such.
> >
> > Add counting of singleton chunks so they are properly accounted for.
> >
> > Signed-off-by: Jamie Bainbridge <[email protected]>
> > ---
> > net/sctp/outqueue.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c
> > index a18609f608fb786b2532a4febbd72a9737ab906c..e2d7c955f07c80da17c7525159aaf8a053432ae3 100644
> > --- a/net/sctp/outqueue.c
> > +++ b/net/sctp/outqueue.c
> > @@ -914,6 +914,7 @@ static void sctp_outq_flush_ctrl(struct sctp_flush_ctx *ctx)
> > ctx->asoc->base.sk->sk_err = -error;
> > return;
> > }
> > + ctx->asoc->stats.octrlchunks++;
> > break;
> >
> > case SCTP_CID_ABORT:
>
> Please also fix it for pmtu probes a bit below. They are heartbeats
> being handled specially as singletons as well.

Since a v2 is needed, please add also a suitable fixes tag - possibly:

Fixes: 196d67593439 ("sctp: Add support to per-association statistics via a new SCTP_GET_ASSOC_STATS call")

Thanks!

Paolo

2022-03-29 16:21:26

by Marcelo Ricardo Leitner

[permalink] [raw]
Subject: Re: [PATCH net] sctp: count singleton chunks in assoc user stats

On Tue, Mar 29, 2022 at 01:13:36PM +1000, Jamie Bainbridge wrote:
> singleton chunks (INIT, and less importantly SHUTDOWN and SHUTDOWN-
> COMPLETE) are not counted in SCTP_GET_ASOC_STATS "sas_octrlchunks"
> counter available to the assoc owner.
>
> INIT (and the SHUTDOWN chunks) are control chunks so they should be
> counted as such.
>
> Add counting of singleton chunks so they are properly accounted for.
>
> Signed-off-by: Jamie Bainbridge <[email protected]>
> ---
> net/sctp/outqueue.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c
> index a18609f608fb786b2532a4febbd72a9737ab906c..e2d7c955f07c80da17c7525159aaf8a053432ae3 100644
> --- a/net/sctp/outqueue.c
> +++ b/net/sctp/outqueue.c
> @@ -914,6 +914,7 @@ static void sctp_outq_flush_ctrl(struct sctp_flush_ctx *ctx)
> ctx->asoc->base.sk->sk_err = -error;
> return;
> }
> + ctx->asoc->stats.octrlchunks++;
> break;
>
> case SCTP_CID_ABORT:

Please also fix it for pmtu probes a bit below. They are heartbeats
being handled specially as singletons as well.

Marcelo