ipsec: Add 'detail' option to 'sh ipsec sa'

Type: feature

with detail option prints all details for all SAs

Change-Id: Ic3c423c085dfc849cf9c3e18a6f624b82150d961
Signed-off-by: Neale Ranns <nranns@cisco.com>
This commit is contained in:
Neale Ranns
2019-08-27 12:47:17 +00:00
committed by Dave Barach
parent 5ad541eeaa
commit 670027a506

View File

@ -344,13 +344,14 @@ VLIB_CLI_COMMAND (ipsec_policy_add_del_command, static) = {
/* *INDENT-ON* */ /* *INDENT-ON* */
static void static void
ipsec_sa_show_all (vlib_main_t * vm, ipsec_main_t * im) ipsec_sa_show_all (vlib_main_t * vm, ipsec_main_t * im, u8 detail)
{ {
u32 sai; u32 sai;
/* *INDENT-OFF* */ /* *INDENT-OFF* */
pool_foreach_index (sai, im->sad, ({ pool_foreach_index (sai, im->sad, ({
vlib_cli_output(vm, "%U", format_ipsec_sa, sai, IPSEC_FORMAT_BRIEF); vlib_cli_output(vm, "%U", format_ipsec_sa, sai,
(detail ? IPSEC_FORMAT_DETAIL : IPSEC_FORMAT_BRIEF));
})); }));
/* *INDENT-ON* */ /* *INDENT-ON* */
} }
@ -404,7 +405,7 @@ show_ipsec_command_fn (vlib_main_t * vm,
{ {
ipsec_main_t *im = &ipsec_main; ipsec_main_t *im = &ipsec_main;
ipsec_sa_show_all (vm, im); ipsec_sa_show_all (vm, im, 0);
ipsec_spd_show_all (vm, im); ipsec_spd_show_all (vm, im);
ipsec_spd_bindings_show_all (vm, im); ipsec_spd_bindings_show_all (vm, im);
ipsec_tunnel_show_all (vm, im); ipsec_tunnel_show_all (vm, im);
@ -426,17 +427,20 @@ show_ipsec_sa_command_fn (vlib_main_t * vm,
{ {
ipsec_main_t *im = &ipsec_main; ipsec_main_t *im = &ipsec_main;
u32 sai = ~0; u32 sai = ~0;
u8 detail = 0;
while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
{ {
if (unformat (input, "%u", &sai)) if (unformat (input, "%u", &sai))
; ;
if (unformat (input, "detail"))
detail = 1;
else else
break; break;
} }
if (~0 == sai) if (~0 == sai)
ipsec_sa_show_all (vm, im); ipsec_sa_show_all (vm, im, detail);
else else
vlib_cli_output (vm, "%U", format_ipsec_sa, sai, IPSEC_FORMAT_DETAIL); vlib_cli_output (vm, "%U", format_ipsec_sa, sai, IPSEC_FORMAT_DETAIL);