dpdk: Remove obsolete VMXNET3 driver start/stop workaround
[vpp.git] / vnet / vnet / devices / dpdk / dpdk_priv.h
index 4ecb1b8..0abe630 100644 (file)
@@ -91,50 +91,41 @@ dpdk_update_counters (dpdk_device_t * xd, f64 now)
   if (xd->dev_type != VNET_DPDK_DEV_ETH)
     return;
 
-  /*
-   * DAW-FIXME: VMXNET3 device stop/start doesn't work,
-   * therefore fake the stop in the dpdk driver by
-   * silently dropping all of the incoming pkts instead of
-   * stopping the driver / hardware.
-   */
-  if (xd->admin_up != 0xff)
+  xd->time_last_stats_update = now ? now : xd->time_last_stats_update;
+  clib_memcpy (&xd->last_stats, &xd->stats, sizeof (xd->last_stats));
+  rte_eth_stats_get (xd->device_index, &xd->stats);
+
+  /* maybe bump interface rx no buffer counter */
+  if (PREDICT_FALSE (xd->stats.rx_nombuf != xd->last_stats.rx_nombuf))
+    {
+      cm = vec_elt_at_index (vnm->interface_main.sw_if_counters,
+                            VNET_INTERFACE_COUNTER_RX_NO_BUF);
+
+      vlib_increment_simple_counter (cm, my_cpu, xd->vlib_sw_if_index,
+                                    xd->stats.rx_nombuf -
+                                    xd->last_stats.rx_nombuf);
+    }
+
+  /* missed pkt counter */
+  if (PREDICT_FALSE (xd->stats.imissed != xd->last_stats.imissed))
     {
-      xd->time_last_stats_update = now ? now : xd->time_last_stats_update;
-      clib_memcpy (&xd->last_stats, &xd->stats, sizeof (xd->last_stats));
-      rte_eth_stats_get (xd->device_index, &xd->stats);
-
-      /* maybe bump interface rx no buffer counter */
-      if (PREDICT_FALSE (xd->stats.rx_nombuf != xd->last_stats.rx_nombuf))
-       {
-         cm = vec_elt_at_index (vnm->interface_main.sw_if_counters,
-                                VNET_INTERFACE_COUNTER_RX_NO_BUF);
-
-         vlib_increment_simple_counter (cm, my_cpu, xd->vlib_sw_if_index,
-                                        xd->stats.rx_nombuf -
-                                        xd->last_stats.rx_nombuf);
-       }
-
-      /* missed pkt counter */
-      if (PREDICT_FALSE (xd->stats.imissed != xd->last_stats.imissed))
-       {
-         cm = vec_elt_at_index (vnm->interface_main.sw_if_counters,
-                                VNET_INTERFACE_COUNTER_RX_MISS);
-
-         vlib_increment_simple_counter (cm, my_cpu, xd->vlib_sw_if_index,
-                                        xd->stats.imissed -
-                                        xd->last_stats.imissed);
-       }
-      rxerrors = xd->stats.ierrors;
-      last_rxerrors = xd->last_stats.ierrors;
-
-      if (PREDICT_FALSE (rxerrors != last_rxerrors))
-       {
-         cm = vec_elt_at_index (vnm->interface_main.sw_if_counters,
-                                VNET_INTERFACE_COUNTER_RX_ERROR);
-
-         vlib_increment_simple_counter (cm, my_cpu, xd->vlib_sw_if_index,
-                                        rxerrors - last_rxerrors);
-       }
+      cm = vec_elt_at_index (vnm->interface_main.sw_if_counters,
+                            VNET_INTERFACE_COUNTER_RX_MISS);
+
+      vlib_increment_simple_counter (cm, my_cpu, xd->vlib_sw_if_index,
+                                    xd->stats.imissed -
+                                    xd->last_stats.imissed);
+    }
+  rxerrors = xd->stats.ierrors;
+  last_rxerrors = xd->last_stats.ierrors;
+
+  if (PREDICT_FALSE (rxerrors != last_rxerrors))
+    {
+      cm = vec_elt_at_index (vnm->interface_main.sw_if_counters,
+                            VNET_INTERFACE_COUNTER_RX_ERROR);
+
+      vlib_increment_simple_counter (cm, my_cpu, xd->vlib_sw_if_index,
+                                    rxerrors - last_rxerrors);
     }
 
   dpdk_get_xstats (xd);