dpdk: output switch information 90/24790/3
authorHaggai Eran <haggai.eran@gmail.com>
Tue, 4 Feb 2020 12:09:04 +0000 (14:09 +0200)
committerDamjan Marion <dmarion@me.com>
Wed, 5 Feb 2020 09:19:35 +0000 (09:19 +0000)
Type: feature

Output DPDK switch information to allow finding out which DPDK ports are
associated with which DPDK representor ports.

Signed-off-by: Haggai Eran <haggai.eran@gmail.com>
Change-Id: I612cbd5a97e04787eca13423f53c7283d5945e37

src/plugins/dpdk/device/format.c

index 8ef4651..0db58d8 100644 (file)
@@ -544,6 +544,20 @@ ptr2sname (void *p)
   return info.dli_sname;
 }
 
+static u8 *
+format_switch_info (u8 * s, va_list * args)
+{
+  struct rte_eth_switch_info *si =
+    va_arg (*args, struct rte_eth_switch_info *);
+
+  if (si->name)
+    s = format (s, "name %s ", si->name);
+
+  s = format (s, "domain id %d port id %d", si->domain_id, si->port_id);
+
+  return s;
+}
+
 u8 *
 format_dpdk_device (u8 * s, va_list * args)
 {
@@ -609,6 +623,13 @@ format_dpdk_device (u8 * s, va_list * args)
          vec_free (s2);
        }
 
+      if (di.switch_info.domain_id != RTE_ETH_DEV_SWITCH_DOMAIN_ID_INVALID)
+       {
+         s =
+           format (s, "%Uswitch info: %U\n", format_white_space, indent + 2,
+                   format_switch_info, &di.switch_info);
+       }
+
       if (1 < verbose)
        {
          s = format (s, "%Umodule: %U\n", format_white_space, indent + 2,