quic: add cli command for stats
add command to display stats from quicly (rtt, packet loss) Type: feature Change-Id: Iaa18bc78fbf80a9367ef150a8cf4997a456c6b39 Signed-off-by: MathiasRaoul <mathias.raoul@gmail.com>
This commit is contained in:

committed by
Dave Wallace

parent
7ff07354c3
commit
922f0b211c
@ -2255,6 +2255,47 @@ quic_plugin_crypto_command_fn (vlib_main_t * vm,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static u8 *
|
||||
quic_format_ctx_stat (u8 * s, va_list * args)
|
||||
{
|
||||
quic_ctx_t *ctx = va_arg (*args, quic_ctx_t *);
|
||||
quicly_stats_t quicly_stats;
|
||||
|
||||
quicly_get_stats (ctx->conn, &quicly_stats);
|
||||
|
||||
s = format (s, "\n\rQUIC conn stats \n\r");
|
||||
|
||||
s =
|
||||
format (s, "RTT: min:%d, smoothed:%d, variance:%d, latest:%d \n\r",
|
||||
quicly_stats.rtt.minimum, quicly_stats.rtt.smoothed,
|
||||
quicly_stats.rtt.variance, quicly_stats.rtt.latest);
|
||||
s = format (s, "Packet loss:%d \n\r", quicly_stats.num_packets.lost);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
static clib_error_t *
|
||||
quic_plugin_showstats_command_fn (vlib_main_t * vm,
|
||||
unformat_input_t * input,
|
||||
vlib_cli_command_t * cmd)
|
||||
{
|
||||
quic_main_t *qm = &quic_main;
|
||||
quic_ctx_t *ctx = NULL;
|
||||
u32 num_workers = vlib_num_workers ();
|
||||
|
||||
for (int i = 0; i < num_workers + 1; i++)
|
||||
{
|
||||
/* *INDENT-OFF* */
|
||||
pool_foreach (ctx, qm->ctx_pool[i],
|
||||
({
|
||||
if(!(ctx->flags & QUIC_F_IS_LISTENER) && !(ctx->flags & QUIC_F_IS_STREAM))
|
||||
vlib_cli_output (vm, "%U", quic_format_ctx_stat, ctx);
|
||||
}));
|
||||
/* *INDENT-ON* */
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* *INDENT-OFF* */
|
||||
VLIB_CLI_COMMAND(quic_plugin_crypto_command, static)=
|
||||
{
|
||||
@ -2262,6 +2303,12 @@ VLIB_CLI_COMMAND(quic_plugin_crypto_command, static)=
|
||||
.short_help = "quic set crypto api [picotls, vpp]",
|
||||
.function = quic_plugin_crypto_command_fn,
|
||||
};
|
||||
VLIB_CLI_COMMAND(quic_plugin_stats_command, static)=
|
||||
{
|
||||
.path = "show quic stats",
|
||||
.short_help = "show quic stats",
|
||||
.function = quic_plugin_showstats_command_fn,
|
||||
};
|
||||
VLIB_PLUGIN_REGISTER () =
|
||||
{
|
||||
.version = VPP_BUILD_VER,
|
||||
|
Reference in New Issue
Block a user