Commit e3d37210 authored by Jamie Bainbridge's avatar Jamie Bainbridge Committed by Paolo Abeni
Browse files

sctp: count singleton chunks in assoc user stats



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: 196d6759 ("sctp: Add support to per-association statistics via a new SCTP_GET_ASSOC_STATS call")
Signed-off-by: default avatarJamie Bainbridge <jamie.bainbridge@gmail.com>
Acked-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Link: https://lore.kernel.org/r/c9ba8785789880cf07923b8a5051e174442ea9ee.1649029663.git.jamie.bainbridge@gmail.com


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 458f5d92
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -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;