BIER CLI show commands; no crash on non-existant objects (VPP-1303) 80/12880/3
authorNeale Ranns <nranns@cisco.com>
Tue, 5 Jun 2018 00:10:18 +0000 (17:10 -0700)
committerFlorin Coras <florin.coras@gmail.com>
Tue, 5 Jun 2018 06:34:34 +0000 (06:34 +0000)
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>
src/vnet/bier/bier_disp_entry.c
src/vnet/bier/bier_disp_table.c
src/vnet/bier/bier_imp.c

index 2fe2e4a..2df8314 100644 (file)
@@ -375,8 +375,15 @@ show_bier_disp_entry (vlib_main_t * vm,
     }
     else
     {
-        vlib_cli_output(vm, "%U", format_bier_disp_entry, bdei, 1,
-                        BIER_SHOW_DETAIL);
+        if (pool_is_free_index(bier_disp_entry_pool, bdei))
+        {
+            vlib_cli_output(vm, "No such BIER disp entry: %d", bdei);
+        }
+        else
+        {
+            vlib_cli_output(vm, "%U", format_bier_disp_entry, bdei, 1,
+                            BIER_SHOW_DETAIL);
+        }
     }
     return (NULL);
 }
index c663286..68edb08 100644 (file)
@@ -385,8 +385,15 @@ show_bier_disp_table (vlib_main_t * vm,
     }
     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);
 }
index bd934b7..0c87d17 100644 (file)
@@ -275,8 +275,15 @@ show_bier_imp (vlib_main_t * vm,
     }
     else
     {
-        vlib_cli_output(vm, "%U", format_bier_imp, bii, 1,
-                        BIER_SHOW_DETAIL);
+        if (pool_is_free_index(bier_imp_pool, bii))
+        {
+            vlib_cli_output(vm, "No such BIER imposition: %d", bii);
+        }
+        else
+        {
+            vlib_cli_output(vm, "%U", format_bier_imp, bii, 1,
+                            BIER_SHOW_DETAIL);
+        }
     }
     return (NULL);
 }