Fix - sh ip fib mtrie sum 77/9577/3
authorNeale Ranns <nranns@cisco.com>
Mon, 27 Nov 2017 09:03:25 +0000 (01:03 -0800)
committerDamjan Marion <dmarion.lists@gmail.com>
Mon, 27 Nov 2017 19:00:42 +0000 (19:00 +0000)
Change-Id: I62a6ee78ee9ad73fd58a46fbdca54fd964fec113
Signed-off-by: Neale Ranns <nranns@cisco.com>
src/vnet/fib/ip4_fib.c
src/vnet/ip/ip4_mtrie.c

index 48dc2c6..36cf6e7 100644 (file)
@@ -555,6 +555,11 @@ ip4_show_fib (vlib_main_t * vm,
         vec_free(s);
 
        /* Show summary? */
+       if (mtrie)
+        {
+           vlib_cli_output (vm, "%U", format_ip4_fib_mtrie, &fib->mtrie, verbose);
+            continue;
+        }
        if (! verbose)
        {
            vlib_cli_output (vm, "%=20s%=16s", "Prefix length", "Count");
@@ -567,11 +572,6 @@ ip4_show_fib (vlib_main_t * vm,
            }
            continue;
        }
-       if (mtrie)
-        {
-           vlib_cli_output (vm, "%U", format_ip4_fib_mtrie, &fib->mtrie);
-            continue;
-        }
 
        if (!matching)
        {
index 4dbf8c9..f114da0 100644 (file)
@@ -764,6 +764,7 @@ u8 *
 format_ip4_fib_mtrie (u8 * s, va_list * va)
 {
   ip4_fib_mtrie_t *m = va_arg (*va, ip4_fib_mtrie_t *);
+  int verbose = va_arg (*va, int);
   ip4_fib_mtrie_16_ply_t *p;
   u32 base_address = 0;
   int i;
@@ -771,18 +772,22 @@ format_ip4_fib_mtrie (u8 * s, va_list * va)
   s = format (s, "%d plies, memory usage %U\n",
              pool_elts (ip4_ply_pool),
              format_memory_size, mtrie_memory_usage (m));
-  s = format (s, "root-ply");
-  p = &m->root_ply;
 
-  for (i = 0; i < ARRAY_LEN (p->leaves); i++)
+  if (verbose)
     {
-      u16 slot;
+      s = format (s, "root-ply");
+      p = &m->root_ply;
 
-      slot = clib_host_to_net_u16 (i);
-
-      if (p->dst_address_bits_of_leaves[slot] > 0)
+      for (i = 0; i < ARRAY_LEN (p->leaves); i++)
        {
-         FORMAT_PLY (s, p, slot, base_address, 16, 2);
+         u16 slot;
+
+         slot = clib_host_to_net_u16 (i);
+
+         if (p->dst_address_bits_of_leaves[slot] > 0)
+           {
+             FORMAT_PLY (s, p, slot, base_address, 16, 2);
+           }
        }
     }