interface: allow an interface's index to be given in 'sh int' 84/33784/2
authorNeale Ranns <neale@graphiant.com>
Wed, 22 Sep 2021 10:49:43 +0000 (10:49 +0000)
committerDamjan Marion <dmarion@me.com>
Wed, 22 Sep 2021 14:32:22 +0000 (14:32 +0000)
Type: improvement

e.g.:
DBGvpp# sh int 3
              Name               Idx    State  MTU (L3/IP4/IP6/MPLS)     Counter          Count
loop2                             3     down         9000/0/0/0

Signed-off-by: Neale Ranns <neale@graphiant.com>
Change-Id: Ie296167ab2b1b9576b46f6d4d9fb9546aef3a0da

src/vnet/interface_cli.c

index 8475225..2f231c1 100644 (file)
@@ -319,6 +319,21 @@ show_sw_interfaces (vlib_main_t * vm,
            show_vtr = 1;
          else if (unformat (linput, "verbose"))
            verbose = 1;
+         else if (unformat (linput, "%d", &sw_if_index))
+           {
+             if (!pool_is_free_index (im->sw_interfaces, sw_if_index))
+               {
+                 si = pool_elt_at_index (im->sw_interfaces, sw_if_index);
+                 vec_add1 (sorted_sis, si[0]);
+               }
+             else
+               {
+                 vec_free (sorted_sis);
+                 error = clib_error_return (0, "unknown interface index `%d'",
+                                            sw_if_index);
+                 goto done;
+               }
+           }
          else
            {
              vec_free (sorted_sis);