BIER CLI show commands; no crash on non-existant objects (VPP-1303)
DBGvpp# sh bier disp entry
DBGvpp# sh bier disp entry 0
No such BIER disp entry: 0
DBGvpp# sh bier disp table
DBGvpp# sh bier disp table 0
No such BIER disp table: 0
DBGvpp# sh bier disp table 11
No such BIER disp table: 11
DBGvpp#
DBGvpp# sh bier bift
no BIFT entries
DBGvpp# sh bier bift set 0
no BIFT entries
DBGvpp# sh bier bift set 0 sd 0 bsl 0
no BIFT entries
DBGvpp#
DBGvpp# sh bier fib
No BIER tables
DBGvpp# sh bier fib 0
DBGvpp# sh bier fib 0 4
DBGvpp# sh bier fmask
DBGvpp# sh bier fmask 2
No BIER f-mask 2
DBGvpp# sh bier imp
DBGvpp# sh bier imp 0
No such BIER imposition: 0
Change-Id: Ibadac3441dd8a6d1b96bd9ee4358e28498875b95
Signed-off-by: Neale Ranns <nranns@cisco.com>
diff --git a/src/vnet/bier/bier_disp_table.c b/src/vnet/bier/bier_disp_table.c
index c663286..68edb08 100644
--- a/src/vnet/bier/bier_disp_table.c
+++ b/src/vnet/bier/bier_disp_table.c
@@ -385,8 +385,15 @@
}
else
{
- vlib_cli_output(vm, "%U", format_bier_disp_table, bdti, 0,
- BIER_SHOW_DETAIL);
+ if (pool_is_free_index(bier_disp_table_pool, bdti))
+ {
+ vlib_cli_output(vm, "No such BIER disp table: %d", bdti);
+ }
+ else
+ {
+ vlib_cli_output(vm, "%U", format_bier_disp_table, bdti, 0,
+ BIER_SHOW_DETAIL);
+ }
}
return (NULL);
}