interface: dump the interface device type 90/21490/3
authorMohsin Kazmi <sykazmi@cisco.com>
Fri, 27 Sep 2019 11:44:28 +0000 (13:44 +0200)
committerNeale Ranns <nranns@cisco.com>
Wed, 9 Oct 2019 11:08:49 +0000 (11:08 +0000)
Type: feature

Change-Id: I22e2ef34631c9432311ff6457504e0649e0512b4
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
src/vat/api_format.c
src/vnet/interface.api
src/vnet/interface_api.c
src/vpp/api/test_client.c

index 9f02507..1a2fca1 100644 (file)
@@ -1029,6 +1029,8 @@ static void vl_api_sw_interface_details_t_handler_json
                             sizeof (mp->l2_address));
   vat_json_object_add_string_copy (node, "interface_name",
                                   mp->interface_name);
+  vat_json_object_add_string_copy (node, "interface_dev_type",
+                                  mp->interface_dev_type);
   vat_json_object_add_uint (node, "flags", mp->flags);
   vat_json_object_add_uint (node, "link_duplex", mp->link_duplex);
   vat_json_object_add_uint (node, "link_speed", mp->link_speed);
index 02d7a50..1db5ef3 100644 (file)
@@ -131,6 +131,7 @@ autoreply define want_interface_events
     @param pbb_b_vlanid - B-tag vlanid
     @param pbb_i_sid - I-tag service id
     @param interface_name - name of the interface
+    @param interface_dev_type - device type of the interface
     @param tag - an ascii tag
 */
 define sw_interface_details
@@ -186,6 +187,7 @@ define sw_interface_details
 
   /* Interface name */
   string interface_name[64];
+  string interface_dev_type[64];
   string tag[64];
 };
 
index 4d5dab3..b24c2a1 100644 (file)
@@ -202,6 +202,8 @@ send_sw_interface_details (vpe_api_main_t * am,
 {
   vnet_hw_interface_t *hi =
     vnet_get_sup_hw_interface (am->vnet_main, swif->sw_if_index);
+  vnet_device_class_t *dev_class =
+    vnet_get_device_class (am->vnet_main, hi->dev_class_index);
 
   vl_api_sw_interface_details_t *mp = vl_msg_api_alloc (sizeof (*mp));
   clib_memset (mp, 0, sizeof (*mp));
@@ -245,6 +247,10 @@ send_sw_interface_details (vpe_api_main_t * am,
   strncpy ((char *) mp->interface_name,
           (char *) interface_name, ARRAY_LEN (mp->interface_name) - 1);
 
+  if (dev_class && dev_class->name)
+    strncpy ((char *) mp->interface_dev_type, (char *) dev_class->name,
+            ARRAY_LEN (mp->interface_dev_type) - 1);
+
   /* Send the L2 address for ethernet physical intfcs */
   if (swif->sup_sw_if_index == swif->sw_if_index
       && hi->hw_class_index == ethernet_hw_interface_class.index)
index 1239732..14f98cd 100644 (file)
@@ -164,9 +164,10 @@ vl_api_sw_interface_details_t_handler (vl_api_sw_interface_details_t * mp)
       speed = "bogus";
       break;
     }
-  fformat (stdout, "details: %s sw_if_index %d sup_sw_if_index %d "
-          "link_duplex %s link_speed %s",
-          mp->interface_name, ntohl (mp->sw_if_index),
+  fformat (stdout,
+          "details: %s device_type %s sw_if_index %d sup_sw_if_index %d "
+          "link_duplex %s link_speed %s", mp->interface_name,
+          mp->interface_dev_type, ntohl (mp->sw_if_index),
           ntohl (mp->sup_sw_if_index), duplex, speed);
 
   if (mp->l2_address_length)