dpdk: remove SFP eeprom dump from 'show hardware-interfaces' and 'show hardware-inter...
[vpp.git] / src / plugins / dpdk / device / format.c
index b7ceda0..d57dc34 100644 (file)
@@ -602,8 +602,11 @@ format_dpdk_device (u8 * s, va_list * args)
          vec_free (s2);
        }
 
-      s = format (s, "%Umodule: %U\n", format_white_space, indent + 2,
-                 format_dpdk_device_module_info, xd);
+      if (1 < verbose)
+       {
+         s = format (s, "%Umodule: %U\n", format_white_space, indent + 2,
+                     format_dpdk_device_module_info, xd);
+       }
 
       s = format (s, "%Umax rx packet len: %d\n", format_white_space,
                  indent + 2, di.max_rx_pktlen);
@@ -646,11 +649,11 @@ format_dpdk_device (u8 * s, va_list * args)
   /* $$$ MIB counters  */
   {
 #define _(N, V)                                                        \
-    if ((xd->stats.V - xd->last_cleared_stats.V) != 0) {       \
+    if (xd->stats.V != 0) {                                    \
       s = format (s, "\n%U%-40U%16Lu",                         \
                   format_white_space, indent + 2,              \
                   format_c_identifier, #N,                     \
-                  xd->stats.V - xd->last_cleared_stats.V);     \
+                  xd->stats.V);                                \
     }                                                          \
 
     foreach_dpdk_counter
@@ -659,35 +662,32 @@ format_dpdk_device (u8 * s, va_list * args)
 
   u8 *xs = 0;
   u32 i = 0;
-  struct rte_eth_xstat *xstat, *last_xstat;
+  struct rte_eth_xstat *xstat;
   struct rte_eth_xstat_name *xstat_names = 0;
-  int len = rte_eth_xstats_get_names (xd->port_id, NULL, 0);
+  int len = vec_len (xd->xstats);
   vec_validate (xstat_names, len - 1);
-  rte_eth_xstats_get_names (xd->port_id, xstat_names, len);
-
-  ASSERT (vec_len (xd->xstats) == vec_len (xd->last_cleared_xstats));
+  int ret = rte_eth_xstats_get_names (xd->port_id, xstat_names, len);
 
-  /* *INDENT-OFF* */
-  vec_foreach_index(i, xd->xstats)
+  if (ret < 0 || ret > len)
     {
-      u64 delta = 0;
-      xstat = vec_elt_at_index(xd->xstats, i);
-      last_xstat = vec_elt_at_index(xd->last_cleared_xstats, i);
-
-      delta = xstat->value - last_xstat->value;
-      if (verbose == 2 || (verbose && delta))
+      /* *INDENT-OFF* */
+      vec_foreach_index(i, xd->xstats)
         {
-          /* format_c_identifier doesn't like c strings inside vector */
-          u8 * name = format(0,"%s", xstat_names[i].name);
-          xs = format(xs, "\n%U%-38U%16Lu",
-                      format_white_space, indent + 4,
-                      format_c_identifier, name, delta);
-          vec_free(name);
+          xstat = vec_elt_at_index(xd->xstats, i);
+          if (verbose == 2 || (verbose && xstat->value))
+            {
+              /* format_c_identifier doesn't like c strings inside vector */
+              u8 * name = format(0,"%s", xstat_names[i].name);
+              xs = format(xs, "\n%U%-38U%16Lu",
+                          format_white_space, indent + 4,
+                          format_c_identifier, name, xstat->value);
+              vec_free(name);
+            }
         }
-    }
-  /* *INDENT-ON* */
+      /* *INDENT-ON* */
 
-  vec_free (xstat_names);
+      vec_free (xstat_names);
+    }
 
   if (xs)
     {