diff mbox series

[v4,net] sctp: count singleton chunks in assoc user stats

Message ID c9ba8785789880cf07923b8a5051e174442ea9ee.1649029663.git.jamie.bainbridge@gmail.com (mailing list archive)
State Accepted
Commit e3d37210df5c41c51147a2d5d465de1a4d77be7a
Delegated to: Netdev Maintainers
Headers show
Series [v4,net] sctp: count singleton chunks in assoc user stats | expand

Checks

Context Check Description
netdev/tree_selection success Clearly marked for net
netdev/fixes_present success Fixes tag present in non-next series
netdev/subject_prefix success Link
netdev/cover_letter success Single patches do not need cover letters
netdev/patch_count success Link
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 1 this patch: 1
netdev/cc_maintainers success CCed 8 of 8 maintainers
netdev/build_clang success Errors and warnings before: 0 this patch: 0
netdev/module_param success Was 0 now: 0
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 1 this patch: 1
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 18 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Jamie Bainbridge April 3, 2022, 11:47 p.m. UTC
Singleton chunks (INIT, HEARTBEAT PMTU probes, and SHUTDOWN-
COMPLETE) are not counted in SCTP_GET_ASOC_STATS "sas_octrlchunks"
counter available to the assoc owner.

These are all control chunks so they should be counted as such.

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

Fixes: 196d67593439 ("sctp: Add support to per-association statistics via a new SCTP_GET_ASSOC_STATS call")
Signed-off-by: Jamie Bainbridge <jamie.bainbridge@gmail.com>
---
 net/sctp/outqueue.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Marcelo Ricardo Leitner April 4, 2022, 5:57 p.m. UTC | #1
On Mon, Apr 04, 2022 at 09:47:48AM +1000, Jamie Bainbridge wrote:
> Singleton chunks (INIT, HEARTBEAT PMTU probes, and SHUTDOWN-
> COMPLETE) are not counted in SCTP_GET_ASOC_STATS "sas_octrlchunks"
> counter available to the assoc owner.
> 
> These are all control chunks so they should be counted as such.
> 
> Add counting of singleton chunks so they are properly accounted for.
> 
> Fixes: 196d67593439 ("sctp: Add support to per-association statistics via a new SCTP_GET_ASSOC_STATS call")
> Signed-off-by: Jamie Bainbridge <jamie.bainbridge@gmail.com>

Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>

Thanks Jamie.
patchwork-bot+netdevbpf@kernel.org April 5, 2022, 8:40 a.m. UTC | #2
Hello:

This patch was applied to netdev/net.git (master)
by Paolo Abeni <pabeni@redhat.com>:

On Mon,  4 Apr 2022 09:47:48 +1000 you wrote:
> Singleton chunks (INIT, HEARTBEAT PMTU probes, and SHUTDOWN-
> COMPLETE) are not counted in SCTP_GET_ASOC_STATS "sas_octrlchunks"
> counter available to the assoc owner.
> 
> These are all control chunks so they should be counted as such.
> 
> Add counting of singleton chunks so they are properly accounted for.
> 
> [...]

Here is the summary with links:
  - [v4,net] sctp: count singleton chunks in assoc user stats
    https://git.kernel.org/netdev/net/c/e3d37210df5c

You are awesome, thank you!
diff mbox series

Patch

diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c
index a18609f608fb786b2532a4febbd72a9737ab906c..e213aaf45d67c61edbd22abc8be6cd4a197a9ed8 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:
@@ -938,7 +939,10 @@  static void sctp_outq_flush_ctrl(struct sctp_flush_ctx *ctx)
 
 		case SCTP_CID_HEARTBEAT:
 			if (chunk->pmtu_probe) {
-				sctp_packet_singleton(ctx->transport, chunk, ctx->gfp);
+				error = sctp_packet_singleton(ctx->transport,
+							      chunk, ctx->gfp);
+				if (!error)
+					ctx->asoc->stats.octrlchunks++;
 				break;
 			}
 			fallthrough;