tcp: CLI command to print tcp_cfg
Type: improvement Change-Id: Ie8f6ddc96fd3f5d44827ace834f8f6baa330d37d Signed-off-by: Aritra Basu <aritrbas@cisco.com>
This commit is contained in:

committed by
Florin Coras

parent
e30f7122b7
commit
dd4356dc97
@ -840,6 +840,74 @@ VLIB_CLI_COMMAND (show_tcp_punt_command, static) =
|
||||
.function = show_tcp_punt_fn,
|
||||
};
|
||||
|
||||
static u8 *
|
||||
format_tcp_cfg (u8 *s, va_list *args)
|
||||
{
|
||||
tcp_configuration_t tm_cfg = va_arg (*args, tcp_configuration_t);
|
||||
|
||||
s = format (s, "max rx fifo size: %U\n", format_memory_size,
|
||||
tm_cfg.max_rx_fifo);
|
||||
s = format (s, "min rx fifo size: %U\n", format_memory_size,
|
||||
tm_cfg.min_rx_fifo);
|
||||
s = format (s, "default mtu: %u\n", tm_cfg.default_mtu);
|
||||
s = format (s, "initial cwnd multiplier: %u\n",
|
||||
tm_cfg.initial_cwnd_multiplier);
|
||||
s =
|
||||
format (s, "tx pacing: %s\n", tm_cfg.min_rx_fifo ? "enabled" : "disabled");
|
||||
s = format (s, "tso: %s\n", tm_cfg.allow_tso ? "allowed" : "disallowed");
|
||||
s = format (s, "checksum offload: %s\n",
|
||||
tm_cfg.csum_offload ? "enabled" : "disabled");
|
||||
s = format (s, "congestion control algorithm: %s\n",
|
||||
tcp_cc_algo_get (tm_cfg.cc_algo)->name);
|
||||
s = format (s, "min rwnd update ack: %u\n", tm_cfg.rwnd_min_update_ack);
|
||||
s = format (s, "max gso packet size: %U\n", format_memory_size,
|
||||
tm_cfg.max_gso_size);
|
||||
s = format (s, "close_wait time: %u sec\n",
|
||||
(u32) (tm_cfg.closewait_time * TCP_TIMER_TICK));
|
||||
s = format (s, "time_wait time: %u sec\n",
|
||||
(u32) (tm_cfg.timewait_time * TCP_TIMER_TICK));
|
||||
s = format (s, "fin_wait1 time: %u sec\n",
|
||||
(u32) (tm_cfg.finwait1_time * TCP_TIMER_TICK));
|
||||
s = format (s, "fin_wait2 time: %u sec\n",
|
||||
(u32) (tm_cfg.finwait2_time * TCP_TIMER_TICK));
|
||||
s = format (s, "last_ack time: %u sec\n",
|
||||
(u32) (tm_cfg.lastack_time * TCP_TIMER_TICK));
|
||||
s = format (s, "fin_ack time: %u sec\n",
|
||||
(u32) (tm_cfg.closing_time * TCP_TIMER_TICK));
|
||||
s = format (s, "syn_rcvd time: %u sec\n",
|
||||
(u32) (tm_cfg.syn_rcvd_time * TCP_TICK));
|
||||
s = format (s, "tcp allocation error cleanup time: %0.2f sec\n",
|
||||
(f32) (tm_cfg.alloc_err_timeout * TCP_TIMER_TICK));
|
||||
s = format (s, "connection cleanup time: %.2f sec\n", tm_cfg.cleanup_time);
|
||||
s = format (s, "tcp preallocated connections: %u",
|
||||
tm_cfg.preallocated_connections);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
static clib_error_t *
|
||||
show_tcp_cfg_fn (vlib_main_t *vm, unformat_input_t *input,
|
||||
vlib_cli_command_t *cmd)
|
||||
{
|
||||
tcp_main_t *tm = vnet_get_tcp_main ();
|
||||
|
||||
if (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
|
||||
return clib_error_return (0, "unknown input `%U'", format_unformat_error,
|
||||
input);
|
||||
vlib_cli_output (vm, "-----------");
|
||||
vlib_cli_output (vm, "tcp config");
|
||||
vlib_cli_output (vm, "-----------");
|
||||
vlib_cli_output (vm, "%U\n", format_tcp_cfg, tm->cfg);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
VLIB_CLI_COMMAND (show_tcp_cfg_command, static) = {
|
||||
.path = "show tcp config",
|
||||
.short_help = "show tcp config",
|
||||
.function = show_tcp_cfg_fn,
|
||||
};
|
||||
|
||||
static clib_error_t *
|
||||
show_tcp_stats_fn (vlib_main_t * vm, unformat_input_t * input,
|
||||
vlib_cli_command_t * cmd)
|
||||
|
Reference in New Issue
Block a user